time — Получить дату от php до javascript

Я пытаюсь получить даты из PHP (я получаю их из базы данных в формате 2014-09-16 22:00:00).

Затем я создаю объект в PHP, потому что в некоторых случаях мне приходится работать с этой датой, и я использую:

$output[$i]['when'] = new DateTime($output[$i]['when'], new DateTimeZone('Europe/Brussels'));

Затем я отправляю это обратно в код JavaScript с помощью следующей команды PHP:

$line['when']->format('U')*1000

Фактически, эта строка имеет значение foreach, поэтому вы не видите [$ i].

Моя проблема заключается в том, что при входе в JavaScript, он показывает, как 2 часа назад. Я нахожусь в CET и, как я понимаю, формат («U») означает UTC. Но я подумал с указанием даты и времени, это будет работать. Как я могу решить это? Я знаю, что между CET и UTC разница в 2 часа, поэтому нужно ли это в миллисекундах, тогда * 1000, чтобы иметь микросекунды?

РЕДАКТИРОВАТЬ: разница в 2 часа только на несколько месяцев, а затем становится разница в 1 час. Тогда я понятия не имею, как это решить.

Спасибо, если вы можете помочь.

0

Решение

Используйте стандартный формат, который включает часовой пояс. Первичные два, которые вы должны использовать для наиболее простой совместимости с JavaScript, это RFC 2822 или же ISO 8601. Для этого воспользуемся RFC 2822.

То, что вы передаете в свой javascript, должно быть строкой, возвращаемой из:

$line['when']->format(\DateTime::RFC2822);

Есть константы на Класс DateTime для различных стандартных форматов.

Затем в вашем javascript вы можете сделать следующее:

var myDate = new Date('Tue, 16 Sep 2014 20:39:32 +0100');

Который использует стандарт RFC 2822 для разобрать строку в новый объект Date, который затем можно использовать, как и любой другой объект Date, который должен находиться в правильном часовом поясе.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]