有人可以解释为什么以下内容不起作用吗?
我有一个在共享主机帐户上运行的 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 小时!
这样的单行陈述会有什么问题?
对不起,如果我问的是显而易见的。我来自.NET
世界.我是PHP的新手。
PHP 的
time() 函数将始终返回自纪元以来的秒数。获得意外行为的罪魁祸首实际上是 date() 函数。
PHP 的date() 函数会自动将日期转换为 PHP 的当前默认时区,该时区必须是 GMT - 3。这就是为什么当你减去 8 小时时,你落后了 5 小时。
与其使用 date(),您可能还想签入 gmdate()。像这样:
echo(gmdate("n/j/Y, g:i:s A", time() - 28800));
可能是你需要的。