2010-04-24 3 views
1

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

variable_get('date_default_timezone', 0) 

Однако теперь, когда у нас есть дневной свет экономии времени, время Я получаю всегда на один час. Есть ли способ получить фактическую строку часового пояса от Drupal, например, «Европа/Берлин»?

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

echo date_default_timezone_get(); 

дает мне System/Localtime.

ответ

2

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

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

2

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

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


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

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


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

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

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

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

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

Смежные вопросы