我有一个将时间戳转换为前面的工作函数。 (例如:2分钟前)
然而,今天结果突然改变了。当我尝试转换此时间戳1502442048
时,我会在{1}}秒之前得到此结果。
我想到的第一件事是服务器管理员可以更改服务器的时区。所以我尝试将其添加到顶部以设置时区
-978327747
然而,一切都没有改变。该功能之前工作正常。导致该功能不正确的原因是什么?
这是我以前的功能
date_default_timezone_set('Asia/Bangkok');
答案 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如果它是假的。