【问题标题】:Drupal timezone informationDrupal 时区信息
【发布时间】:2010-04-24 19:08:00
【问题描述】:

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

以秒为单位获取从 UTC 到我在管理面板中指定的时区的偏移量
variable_get('date_default_timezone', 0)

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

原因是,我必须将它与 Zend Framework 的 Zend_Date 一起使用,但是 Drupal 并没有设置 PHP 默认时区,因为

echo date_default_timezone_get();

给我系统/本地时间。

【问题讨论】:

    标签: php drupal timezone


    【解决方案1】:

    变量date_default_timezone 应该始终正确

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


    问题是它包含的值不会被魔法改变:有一个名为date_timezone_croncron 钩子必须运行才能在需要时更改它(引用)

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


    之后,如果您需要当前时区的名称(在管理部分中选择的名称),variable 表中可能还有另一行。

    您可以使用如下 SQL 找到它:

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

    它很可能会返回几行;但其中之一应该是显而易见的选择。

    date_timezone.module的源码来看,我赌一个叫date_default_timezone_name的变量。

    【讨论】:

      【解决方案2】:

      我找到了解决办法:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-06
        • 2011-03-13
        • 1970-01-01
        • 2012-08-18
        • 1970-01-01
        • 2013-08-09
        相关资源
        最近更新 更多