使用PHP进行本地时间调整的UTC

时间:2014-11-21 00:42:50

标签: php time gmt

有人可以解释为什么以下不起作用吗?

我有一个在共享主机帐户上运行的PHP脚本。该脚本应输出我当地的时间(我所在的时区,即GMT-8:00PST。)

我正在阅读time()PHP方法的文档,该方法应该返回UTC(或GMT)的Unix时间戳。好的,好的。所以我需要减去8小时才能得到当地时间,对吗?

所以我这样做:

echo(date("n/j/Y, g:i:s A", time() - 28800));    //8hrs = 28800 seconds

但是我的时间已经落后了5个小时!

单行声明中可能出现什么问题?

PS。对不起,如果我问明显的话。我来自.NET的世界。我是PHP的新手。

1 个答案:

答案 0 :(得分:2)

PHP的time()函数将始终返回自纪元以来的秒数。获得意外行为的罪魁祸首实际上是date()函数。

PHP的date()函数会自动将日期转换为PHP的当前默认时区,该时区必须是GMT - 3.这就是为什么当你减去8小时后你会落后5小时。< / p>

您可能需要签入gmdate(),而不是使用date()。类似的东西:

echo(gmdate("n/j/Y, g:i:s A", time() - 28800));

可能就是您所需要的。