有人可以解释为什么以下不起作用吗?
我有一个在共享主机帐户上运行的PHP脚本。该脚本应输出我当地的时间(我所在的时区,即GMT-8:00
或PST
。)
我正在阅读time()PHP方法的文档,该方法应该返回UTC(或GMT)的Unix时间戳。好的,好的。所以我需要减去8小时才能得到当地时间,对吗?
所以我这样做:
echo(date("n/j/Y, g:i:s A", time() - 28800)); //8hrs = 28800 seconds
但是我的时间已经落后了5个小时!
单行声明中可能出现什么问题?
PS。对不起,如果我问明显的话。我来自.NET
的世界。我是PHP的新手。
答案 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));
可能就是您所需要的。