【问题标题】:Function date_default_timezone_set() is not available函数 date_default_timezone_set() 不可用
【发布时间】:2013-02-12 07:52:03
【问题描述】:

正如标题所说,谁能解释一下代码的原因

ini_set( 'date.timezone', 'Europe/Athens' );

有效但

date_default_timezone_set( 'Europe/Athens' );

没有?它给了我这个错误:

致命错误:调用未定义的函数 date_default_timezone_set()

我正在寻找一种转换时间戳的解决方案,而我在网上只能使用date_default_timezone_set。但转换总是有 1 小时的差异。

然后我发现这个主题“strftime() function showing incorrect time”正在使用 init_set 代码(后来我有 RTM 并发现它已经在文档中提到)。我试过了,效果很好。

但我还没有找到为什么date_default_timezone_set 不起作用的答案。

谁能解释一下?

【问题讨论】:

  • 是 timastamps 不是 UTC 和雅典会 +1?也许试试欧洲/都柏林
  • 请分享完整代码..
  • 工作代码pastebin.com/EQx9jeGm
  • 非工作代码pastebin.com/c9HpwTF5
  • @user602088 对不起,我不明白你的评论

标签: php date timezone


【解决方案1】:

您必须使用旧版本的 PHP。

date_default_timezone_set is for PHP 5.1.2 and above.

尝试php -v 并检查您的 PHP 版本。

【讨论】:

    【解决方案2】:

    你可以使用:

    putenv("TZ=Europe/Berlin"); // PHP 4
    

    【讨论】:

      【解决方案3】:

      localhost

      server

      已经很晚了,我遇到了同样的问题,我看到了不同之处,我从我的本地主机和我的个人服务器 phpinfo 发布了时区的屏幕截图。

      在我的本地主机上,date_default_timezone_set('[timezone]') 工作正常,但是,在服务器上,它总是返回 UTC。根据 php 文档,我的服务器的 php ini 中似乎没有设置时区,所以我可能忽略了时区设置,因为之前没有定义任何值。

      使用 init_set,它使时区可用。我认为时区未在 php ini 上预定义是原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-31
        • 1970-01-01
        • 1970-01-01
        • 2016-08-04
        • 1970-01-01
        • 2011-07-09
        • 1970-01-01
        相关资源
        最近更新 更多