web-dev-qa-db-fra.com

Convertir PHP date en format de date javascript

J'ai un script PHP qui génère un tableau de données. Il est ensuite transformé en JSON en utilisant la fonction json_encode().

Mon problème est que j'ai une date dans mon tableau et qu'elle n'est pas au format javascript correct. Comment puis-je la convertir dans PHP il en est ainsi?

$newticket['ThreadID'] =  $addticket;
$newticket['Subject'] =  $subject;
//$newticket['DateCreated'] =  date('d-m-Y G:H');

Au lieu de la date ci-dessus, j'ai besoin de l'équivilant de la fonction javascript

nouvelle date ()

Lorsque je génère ce qui précède, j'obtiens le "Ven Jun 01 2012 11:08:48 GMT + 0100 (GMT Daylight Time)". Cependant, si je formate ma date PHP pour qu'elle soit la même, javascript le rejette. Confus ...

Quelqu'un peut-il aider?

21
LeeTee

Vous devriez probablement simplement utiliser un horodatage

$newticket['DateCreated'] = strtotime('now');

Puis convertissez-le en une date Javascript

// make sure to convert from unix timestamp
var now = new Date(dateFromPHP * 1000);
32
jeremyharris

La classe Javascript Date prend en charge le format de date ISO 8601, je recommande donc:

<?php 
      date('c', $yourDateTime); 
      // or for objects
      $dateTimeObject->format('c');
?>

la documentation indique que: le caractère de format 'c' est la date ISO 8601 (ajouté dans PHP 5)
exemple: 2004-02-12T15: 19: 21 + 00: 00

pour plus d'informations: http://php.net/manual/en/function.date.php

10
Javlonbek

C'est assez simple.

Code PHP:

$formatted_date = $newticket['DateCreated'] =  date('Y/m/d H:i:s');

Code Javascript:

var javascript_date = new Date("<?php echo $formatted_date; ?>");
7
Rahul Gupta

Est très simple, j'utilise ceci:

new Date("<?= date('Y/m/d H:i:s'); ?>");
1
Tiago Buzatto
$newticket['DateCreated'] = date('d-m-Y G:H', strtotime($phpDateVariable));
0
Scott Saunders

Si vous voulez être plus précis avec votre horodatage, vous devez utiliser microtime () au lieu de now ().

Cela vous donne:

echo round(microtime(TRUE)*1000);

Pour un milliseconde, horodatage de type javascript en php.

0

Une amélioration ou une simplification de la réponse de @jeremyharris serait celle-ci:

Les objets DateTime au format PHP ont le format getTimestamp(), utilisez-le et multipliez la valeur par 1000:

<?php $phpDateTimeStamp = new Date('Y/m/d H:i:s')->getTimestamp() * 1000; ?>

// JavaScript
var startTime = new Date(phpDateTimeStamp);
0
xarlymg89