时区问题

时间:2011-07-21 05:18:17

标签: php apache2

当服务器上的时间超过12小时时,可能会发生什么?我在网站上为朋友工作,并注意到虽然服务器在我们的时区,但在向DB写入记录时,我们已经落后了12个小时。所以我做了这样的检查:

<?php echo(gmstrftime("It is %a on %b %d, %Y, %X time zone: %Z",time()));
    phpinfo();
?>

结果:

It is Thu on Jul 21, 2011, 04:46:46 time zone: GMT
...

date

date/time support enabled

"Olson" Timezone Database Version 2010.15

Timezone Database internal

Default timezone Pacific/Auckland


Directive Local Value Master Value

date.default_latitude 31.7667 31.7667

date.default_longitude 35.2333  35.2333

date.sunrise_zenit 90.583333 90.583333

date.sunset_zenith 90.583333 90.583333

date.timezone Pacific/Auckland Pacific/Auckland

问你可以看到,PHP报告凌晨4点46分。这真的是下午4:46。它报告GMT为时区,但PHPinfo报告太平洋/奥克兰为时区(GMT + 12)。

我问了网络主机发生了什么事。他们不确定,因为系统的时间是正确的。 而且没有其他的php.ini文件被引入。

想法?

2 个答案:

答案 0 :(得分:1)

gmstrftime报告GMT时间,这对我来说是正确的。 你需要strftime来获得你的本地(AKL)时间。 php.ini可能将其时区设置为AKL,这也是正确的。 正确的问题是“strftime(或任何其他PHP当前时间函数)报告的内容是什么?”

答案 1 :(得分:0)

gmstrftime就其性质而言报道了格林威治标准时间。这就是gm的用途。 :)