错误设置PHP时区的问题

时间:2013-05-04 16:34:46

标签: php timezone centos5

我遇到的问题是PHP没有正确反映实际时间,因此所有服务器的脚本将来总是5个小时。

如果我在命令行中运行它,我得到了。 (Centos5)..

[root@server ~]# date
Sat May  4 11:20:17 CDT 2013

哪个是正确的(我来自墨西哥,并且服务器具有正确的时区和时间设置),在PHP中如何做到这一点我得到...

[root@server ~]# 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 个答案:

答案 0 :(得分:2)

gmdate()根据GMT(格林威治标准时间)返回时间,其中(尽管不相同)与UTC可互换使用。你说现在你在CDT上落后UTC 5小时(因为夏令时已经生效)。

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