Есть у меня задачка с модулями event.
И вот озаботился вопросом правильности времени вводимого пользователем. Ведь мы в двух зонах живем: +3 и +4.
Начал копать в друпале на тему dst. Нет нифига. Просто нифига.
В date_format используется тупо _смещение_ без учета энергосбережения для временной зоны.
ВСЕ. больше упоминаний нема.
Походу надописать свой обработчик для перехода с +3 на +4 в час X? Как вы решаете эту проблему?
Ведь в евентах после такого перехода встрянет неверное время события. Что меня ооооочень не радует.
вру, в эвентах можно сохранять таймзону и выводить в ней.
а вот посты блога... сообщения форума. все остальное - там будет весело
Комментарии
На сервере (во всяком случае на юниксовом сервере) время должно храниться в GMT, а пользователи и программы выставляют нужное им смещение в зависимости от временной зоны. Т.е. логично, что время в базе хранится всегда в GMT, а в зависимости от текущего сезона зима/лето и пользователя выводится с нужным смещением. По-моему в друпале смещение к дате именно это и делает.
то то и оно что там нет сезонного смещения. то есть если DST у юзера не совпадет с DST на сервере - юзерю будет плёхо.
вывод: вывод времени в том виде что есть - залипуха.
абыдно
Юзеру будет в большинстве случаев просто пофиг, а вот то, что пользователю, если он захочет получать даты в соответствии с летним/зимнем временем, нужно менять в своих настройках зону в зависимости от летнего и зимнего времени - это вот "плёхо".
Да, меня это то же бесит.
При переходе на летнее/зимнее время идешь на все свои сайты и переводишь время в ручную.
Неужели нет возможности автоматизации.
ну друпаловская format_date() зависит от .... переменной окружения TZ - если всмотритесь в код поймете.
я у себя решу.... просто поставив в settings.php строчку putenv('TZ=Europe/Moscow');
Решение временное + для наших и части СНГ - то есть зима/лето у нас синхронно туда сюда ходят.
Потому даты встанут правильно...ну за исключением пары часов в году... но это мелочи
А вообще да - будем на время 5ой и 6ой версии workaround валять.
На 7ке DST будет - но они его возьмут из 5го пыха
Мы такие проблемы решали на PHP 4.2 еще.
потому не ясно почему не выделено это в 2 модуля которые можно выбирать на свой вкус...
putenv('TZ=Europe/Moscow'); - если сервер на линуксе - велкам.
на FreeBSD - не в коем случае - память течет
date_default_timezone_set(' - на 5ом php спасет
Самое забавное, что это дело тянется с 4.6 версии http://drupal.org/node/11077
Написал модуль по учету переходов на летнее время, предлагаю всем потестировать!
http://www.drupal.ru/node/11613
Ну есть модуль DST - который просто дает возможность выстроить время на нужное Вам место.
А теперь посмотрите на карту РФ. И подумайте, сколько часовых полос в нашей стране?
Как сделать настройку для каждого региона свой?
Информация, основа единая, но вот для каждого города своя, как разделить между города все это?
Вопрос все еще не закрыт!
все прекрасно разделяется. вопрос вложений денег и времени. я вот тока не пойму зачем подымать древний уже неактуальный топик?
И закрыт никогда не будет, так как все часовые пояса нужно переводить и поддерживать постоянные изменения.
Задача пока частично решена ( issue 11077 ) в 7ку включены изменения, дальше видно будет