Преобразование даты PHP в формат даты javascript


У меня есть PHP-скрипт, который выводит массив данных. Затем это преобразуется в JSON с помощью функции json_encode().

Моя проблема в том, что у меня есть дата в моем массиве, и она не в правильном формате javascript. Как я могу преобразовать это в PHP, чтобы это было?

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

Вместо приведенной выше даты мне нужен эквивалент функции javascript

Новая дата()

Когда я вывожу вышесказанное, я получаю следующее "Пт 01 июня 2012 11:08:48 GMT+0100 (летнее время по Гринвичу)" Однако, если я отформатирую свою дату PHP таким же образом, javascript отклонит ее. Смущенный...

Кто-нибудь может помочь?

Author: Rahul Gupta, 2012-05-31

6 answers

Вероятно, вам следует просто использовать метку времени

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

Затем преобразуйте его в дату Javascript

// make sure to convert from unix timestamp
var now = new Date(dateFromPHP * 1000);
 27
Author: jeremyharris, 2012-05-31 15:58:28

Класс даты Javascript поддерживает формат даты ISO 8601, поэтому я бы рекомендовал:

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

В документации говорится, что: символ формата 'c' - это дата ISO 8601 (добавлена в PHP 5)
пример: 2004-02-12T15:19:21+00:00

Для получения дополнительной информации: http://php.net/manual/en/function.date.php

 6
Author: Javlonbek, 2017-03-16 23:35:27

Это довольно просто.

PHP-код:

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

Код Javascript:

var javascript_date = new Date("<?php echo $formatted_date; ?>");
 5
Author: Rahul Gupta, 2014-07-08 06:38:51

Очень просто, я использую это:

new Date("<?= date('Y/m/d H:i:s'); ?>");
 1
Author: Tiago Buzatto, 2016-07-12 13:36:30
$newticket['DateCreated'] = date('d-m-Y G:H', strtotime($phpDateVariable));
 0
Author: Scott Saunders, 2012-05-31 15:53:42

Если вы хотите быть более точным с вашей меткой времени, вам следует использовать microtime() вместо now().

Это дает вам:

echo round(microtime(TRUE)*1000);

Для миллисекундной временной метки, подобной javascript в php.

 0
Author: Joan-Diego Rodriguez, 2013-12-01 22:57:37