知道为什么这个
strtotime('1356532858') //Wed, 26 Dec 2012 14:40:58 GMT
在
时返回28043243813
strtotime('1356055871') //Fri, 21 Dec 2012 02:11:11 GMT
返回false
?
我正在寻找一个解决方案,我可以将任何常用日期字符串转换为有效的时间戳。不幸的是,还包括一些(有效)时间戳
答案 0 :(得分:1)
也许只有在字符串不是10位数时才可以尝试使用strtotime
$str = '1356055871';
$timestamp = (preg_match('/\d{10}/',$str,$match))?(int)$str:strtotime($str);
echo $timestamp;
关于为什么在第一次执行时收到值而在第二次执行时收到false
的问题,这是因为1356532858
被解释为某个有效日期,尽管不是您所期望的:< / p>
echo date("Y-m-d H:i:s",strtotime('1356532858'));
// outputs: 2858-08-27 13:56:53
strtotime
可以接受您的时间戳,但应该有一个前导@
:
echo date("Y-m-d H:i:s",strtotime('@1356532858'));
// outputs: 2012-12-26 15:40:58
答案 1 :(得分:1)