У нас возникают проблемы с синхронизацией представления даты и времени в php и momentjs. Допустим, у нас есть datetime с часовым поясом в Москве:
2013-06-10T10:40:00.000+04:00
Пользователь должен увидеть местное время: 2013-06-10T10:40:00. Неважно, сидит он в Испании или США. Следующий php-код выдаст правильное время, которое нам нужно:
$date = new DateTime('2013-06-10T10:40:00.000+04:00');
echo $date->format('d.m.Y H:i:s');
Результат:
10.06.2013 10:40:00
Но если мы проанализируем ту же строку даты и времени во внешнем интерфейсе с momentjs:
moment('2013-06-10T10:40:00.000+04:00').format('D.M.YYYY h:mm:ss');
Результат:
10.6.2013 8:40:00
Часовой пояс браузера — Europe/Berlin (+02:00). Использование utc() также неправильно вычисляет дату. Что нам нужно, так это местное время места, так что в случае с php оно будет правильным. Предоставление строки синтаксического анализа в momentjs:
moment('2013-06-10T10:40:00.000+04:00', "YYYY-MM-DD HH:mm").format('D.M.YYYY h:mm:ss')
будет делать свое дело, поэтому часовой пояс удаляется. Но на самом деле мы должны установить строку синтаксического анализа глобально, но как?
Спасибо за предложения.