2012-05-31 2 views
15

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

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

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

Вместо выше Ф.О. rthe даты Мне нужно equivilant в яваскрипте функции

новой Даты()

Когда я выход выше я получаю следующее «ПТ Jun 01 2012 11:08:48 GMT + 0100 (GMT Daylight Time) «Тем не менее, если я отформатирую дату PHP для того, чтобы быть тем же, javascript отвергает ее. Confused ...

Может ли кто-нибудь помочь?

ответ

24

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

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

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

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

Формат даты в формате javascript: Fri Jun 01 2012 11:08:48 GMT + 0100 (GMT Daylight Time) not timestamp – LeeTee

+1

Нет, существует несколько способов создания экземпляра объекта даты, включая метку времени: http: // www .w3schools.com/jsref/jsref_obj_date.asp –

+3

@LeeTee Самый простой и наиболее переносимый формат - это метка времени, которую вы можете преобразовать в любое удобное для вас время. – jeremyharris

0
$newticket['DateCreated'] = date('d-m-Y G:H', strtotime($phpDateVariable)); 
+0

$ phpDateVariable уже в указанном выше формате. Мне нужно ввести формат javascript, который является Fri Jun 01 2012 11:08:48 GMT + 0100 (GMT Daylight Time) – LeeTee

+0

Вы только просите, как отформатировать дату на PHP? Перейдите к вариантам форматирования в документации: http://us.php.net/manual/en/function.date.php –

0

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

Это дает вам:

echo round(microtime(TRUE)*1000); 

Для milisecond, JavaScript, как отметку времени в PHP.

5

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

PHP код:

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

Javascript код:

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

Это очень просто, я использовать это:

new Date("<?= date('Y/m/d H:i:s'); ?>"); 
1

Javascript Дата класс поддерживает ISO 8601 формат даты так Я бы рекомендовал:

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

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

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