2013-02-26 91 views
8

正如标题所说,任何人可以解释为什么代码php - date_default_timezone_set不工作,但ini_set'date.timezone'。为什么?

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

的作品,但

date_default_timezone_set('Europe/Athens'); 

不?

我正在寻找一个解决方案来转换时间戳,我可以在网上找到的所有东西都是使用date_default_timezone_set。但转换总是有一小时不同。

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

但我还没有找到答案,为什么date_default_timezone_set无法正常工作。

请问有人可以解释一下吗?

+0

是不是UTC的timastamps和雅典将是+1?可能试试欧洲/都柏林 – KevInSol 2013-02-26 18:45:09

+0

请分享完整的代码.. – Evert 2013-02-26 20:04:26

+0

工作代码http://pastebin.com/EQx9jeGm – 2013-02-26 20:22:05

回答

2

您必须使用旧版本的PHP。

date_default_timezone_set is for PHP 5.1.2 and above. 

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

0

您可以使用:

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

您可以使用编辑器中的**'{}'**按钮来格式化您的代码。 – kdbanman 2015-11-26 19:30:37

0

localhost

server

这是相当晚了,我得到了同样的问题,我看到有差别,我张贴的截图,从我的本地和我的个人服务器phpinfo为时区。

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

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

相关问题