При создании нового события на моем сайте в Drupal я устанавливаю дату / время события, которое, как я полагаю, соответствует местному времени.Я ожидал, что для даты / времени в системе будет установлено значение, которое я видел в форме добавления / редактирования, но это не так;для него установлено UTC.
Event Start (add/edit form): 2012-12-20 1:00pm EST
Event Start (database): 2012-12-20 6:00pm UTC
Когда я иду отображать эту дату / время, используя дату (), даже после установки часового пояса по умолчанию на EST («Америка / Торонто»), дата / время все еще показывают 2012-12-20 6:00 вечера.
Проблема не обязательно в drupal, дата / время отображаются в том виде, в котором они хранятся, но я думаю, что проблема может быть в дате/ контроль ввода времени в форме добавления / редактирования ... возможное время, связанное с javascript.
Значения публикуются в том виде, в котором они отображаются: 17:00 отправляется на сервер в виде 3 различных значений:5:00 вечераОни хранятся в базе данных как UTC, но, что бы я ни старался, они всегда отображаются как UTC.Я пробовал format_date, date_default_timezone_set, устанавливая часовой пояс PHP в файле .htaccess ... не повезло: s
Ненавижу делать это вручную, но это работает:
$tz = new DateTimeZone('America/Toronto');
$offset = $tz->getOffset(new DateTime($start_date));
$start_stamp = strtotime($start_date) + $offset;