2013-05-04 105 views
0

我有PHP没有正确反映实际时间的问题,一个结果所有服务器的脚本总是在今后5小时。与PHP时区问题设置错误

如果我在thecommand行我运行此。 (Centos5)..

[[email protected] ~]# date 
Sat May 4 11:20:17 CDT 2013 

哪个是正确的(我可是从墨西哥和服务器具有正确的时区和时间设置),在PHP这样做怎么过的,我得到...

[[email protected] ~]# php -r 'echo gmdate("D, d M Y H:i:s e")."\n";' 
Sat, 04 May 2013 16:18:45 UTC 

正如你可以看到未来的时间是几个小时,我的php.ini应该也有正确的时区定义。

[Date] 
; Defines the default timezone used by the date functions 
date.timezone = America/Mexico_City 

那么这里会出现什么问题呢?

+1

这就是你当你使用'gmdate()',它使用UTC;你想'date()'。 – 2013-05-04 16:38:44

回答

2

gmdate()根据GMT(格林威治标准时间)返回时间哪个(尽管不相同)是可互换与UTC使用。你说现在你的CDT比UTC落后5小时(因为夏令时有效)。

如果你希望你的脚本生成日期时间字符串反映在php.ini文件中,你应该使用date()功能设置时区。更好的是,开始使用DateTime库。