Drupal时区信息

时间:2010-04-24 19:08:00

标签: php drupal timezone

在我的drupal安装中,我可以使用

在几秒钟内得到我在管理面板中指定的时区的UTC偏移量
variable_get('date_default_timezone', 0)

但是,现在我们有了夏令时,我得到的时间总是一小时。有没有办法从Drupal中检索实际的时区字符串,例如“Europe / Berlin”?

原因是,我必须在Zend Framework的Zend_Date中使用它,但是Drupal没有设置PHP默认时区,因为

echo date_default_timezone_get();

给我系统/本地时间。

2 个答案:

答案 0 :(得分:2)

变量date_default_timezone应始终正确

例如,在法国,冬天应该是3600(UTC + 1),夏天应该是7200(UTC + 2)。


事情是它包含的值不会因魔术而改变:有一个名为date_timezone_croncron钩子必须运行才能在需要时更改(引用)

  

更新站点时区偏移量   cron跑。
这是为了确保   依赖于时区的模块   offset有当前信息   过程


之后,如果您需要当前时区的名称 - 在admin部分中选择的名称 - 那么variable表中可能还有另一行。

您可以使用SQL找到它,例如:

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

很可能会返回几行;但其中一个应该是明显的选择。

根据date_timezone.module的源代码判断,我会打赌一个名为date_default_timezone_name的变量。

答案 1 :(得分:2)

我找到了解决方案:

仅在管理面板中禁用自定义用户时区时才设置date_default_timezone!确保选中该选项。