Преобразование даты 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 отклонит ее. Смущенный...
Кто-нибудь может помочь?
6 answers
Вероятно, вам следует просто использовать метку времени
$newticket['DateCreated'] = strtotime('now');
Затем преобразуйте его в дату Javascript
// make sure to convert from unix timestamp
var now = new Date(dateFromPHP * 1000);
Класс даты 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
Это довольно просто.
PHP-код:
$formatted_date = $newticket['DateCreated'] = date('Y/m/d H:i:s');
Код Javascript:
var javascript_date = new Date("<?php echo $formatted_date; ?>");
Очень просто, я использую это:
new Date("<?= date('Y/m/d H:i:s'); ?>");
$newticket['DateCreated'] = date('d-m-Y G:H', strtotime($phpDateVariable));
Если вы хотите быть более точным с вашей меткой времени, вам следует использовать microtime() вместо now().
Это дает вам:
echo round(microtime(TRUE)*1000);
Для миллисекундной временной метки, подобной javascript в php.