【发布时间】:2018-10-25 09:21:42
【问题描述】:
我在我的服务器上运行 php。 strtotime 函数的文档说它将尝试将日期字符串解析为 Unix 时间戳(自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数)。
所以我的测试场景是:
字符串 "2018-05-15 14:30" 的时间戳:1526387400 => strtotime("2018-05-15 14:30")
根据 GMT 2018-05-15 13:26 的当前时间戳:1526390790 => time()
在这里,我预计 14:30 的时间戳大于 13:26。但尽管有未来的日期字符串,但该值小于当前时间戳。
我正在测试的服务器在 GMT+2 时区 = date('Z') => 7200 上运行。 我假设根据文档, strtotime 函数返回自纪元以来经过的秒数,而不考虑时区偏移量。我不确定时区偏移是否弄乱了数字。
对此的任何见解都会非常有帮助。
【问题讨论】:
-
PHP 使用服务器时间。所以这可能是你遇到的问题。第一次它直接转换,因为提供了时间。第二次是从服务器生成的。
-
一个简单的测试here显示第一个时间戳对应于12:30。我不知道问题的答案,但我很确定时区与问题有关