11

正如标题所说,任何人都可以解释为什么代码

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

有效,但

date_default_timezone_set( 'Europe/Athens' );

才不是?它给了我这个错误:

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

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

然后我发现这个主题“strftime()函数显示不正确的时间”正在使用 init_set 代码(后来我有 RTM 并发现它已经在文档中提到)。我试过了,它奏效了。

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

有人可以解释一下吗?

4

3 回答 3

3

您必须使用旧版本的 PHP。

date_default_timezone_set is for PHP 5.1.2 and above.

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

于 2014-05-15T05:52:40.703 回答
0

您可以使用:

putenv("TZ=Europe/Berlin"); // PHP 4
于 2015-11-26T18:58:01.720 回答
-1

本地主机

服务器

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

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

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

于 2016-08-22T02:50:32.217 回答