PHP - 将时间戳转换为以前奇怪的结果

时间:2017-08-11 09:24:07

标签: php

我有一个将时间戳转换为前面的工作函数。 (例如:2分钟前) 然而,今天结果突然改变了。当我尝试转换此时间戳1502442048时,我会在{1}}秒之前得到此结果。

我想到的第一件事是服务器管理员可以更改服务器的时区。所以我尝试将其添加到顶部以设置时区

-978327747

然而,一切都没有改变。该功能之前工作正常。导致该功能不正确的原因是什么?

这是我以前的功能

date_default_timezone_set('Asia/Bangkok');

2 个答案:

答案 0 :(得分:2)

我会改变你的三元使用is_numeric()

$time_ago =  is_numeric($time_ago) ? $time_ago : strtotime($time_ago); 

检查给定时间是否为unix时间戳,如果不是,则将其转换为1。

答案 1 :(得分:1)

你唯一要做的就是布尔施放三元。

$time_ago = (bool)strtotime($time_ago) ? $time_ago : strtotime($time_ago);

所以这里的strtotime将是真或假,并且(我交换了真/假的顺序)strtotime如果它是假的。