0

我有一个 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

那么这里有什么问题呢?

4

1 回答 1

2

gmdate()根据 GMT(格林威治标准时间)返回时间,该时间(虽然不相同)可与 UTC 互换使用。你说现在你在 CDT,比 UTC 晚 5 小时(因为夏令时有效)。

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

于 2013-05-04T16:44:36.250 回答