Drupal информация о часовых поясах - PullRequest
1 голос
/ 24 апреля 2010

В моей установке drupal я могу получить смещение от UTC в секундах до часового пояса, который я указал в панели администратора, используя

variable_get('date_default_timezone', 0)

Однако теперь, когда у нас есть летнее время, время, которое я получаю, всегда на один час меньше. Есть ли способ получить фактическую строку часового пояса из Drupal, например, "Europe / Berlin"?

Причина в том, что я должен использовать это с Zend Framework Zend_Date, но Drupal не устанавливает часовой пояс PHP по умолчанию, как

echo date_default_timezone_get();

дает мне Системное / Местное время.

Ответы [ 2 ]

2 голосов
/ 23 сентября 2010

Я нашел решение:

date_default_timezone устанавливается только, когда пользовательские часовые пояса отключены в панели администратора! Убедитесь, что вы отметили эту опцию.

2 голосов
/ 25 апреля 2010

Переменная date_default_timezone всегда должна быть вправо .

Например, во Франции должно быть 3600 зимой (UTC + 1) и 7200 летом (UTC + 2).


Дело в том, что содержащееся в нем значение не изменится по волшебству: есть хук cron с именем date_timezone_cron, который необходимо запустить, чтобы изменить его, когда это необходимо (цитирование) :

Обновлять смещение часового пояса сайта, когда Крон бежит.
Это чтобы убедиться, те модули, которые полагаются на часовой пояс смещение имеет текущую информацию процесс.


После этого, если вам нужно имя текущего часового пояса - выбранного в разделе администратора - возможно, для этого есть еще одна строка в таблицах variable.

Вы можете найти его с помощью SQL, например:

select *
from variable
where name like '%timezone%';

Скорее всего, он вернет несколько строк; но один из них должен быть очевидным выбором.

Судя по исходному коду date_timezone.module, я бы поставил на переменную с именем date_default_timezone_name.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...