epoch日期转换

时间:2012-09-08 20:44:55

标签: php timestamp

我正在尝试使用以下语句

转换带有php 5.3的纪元时间戳
date('d-m-Y',strtotime('1349042399999'));

以人类可读的格式获得错误的结果:01-01-1970应返回30-09-2012的内容。我一直在搜索并创建以下主题PHP strtotime returns a 1970 date when date column is null,但对我的案例没有帮助。

3 个答案:

答案 0 :(得分:6)

原因是该时间戳中嵌入了毫秒,这导致它超过整数溢出限制。

砍掉最后3个字符,你很高兴:

$original_timestamp = "1349042399999";
$timestamp = (int) substr($original_timestamp,0,-3);

echo date('d-m-Y',$timestamp);

答案 1 :(得分:0)

通过使用strtotime,您尝试将时间戳转换为另一个时间戳。您的时间戳也是以微秒为单位。 date函数只需要没有微秒的时间戳,如下所示:

date('d-m-Y',substr('1349042399999', 0, -3));

答案 2 :(得分:0)

我相信第二个Rikudo解决方案的工作原理是因为转换为int,而不是因为修剪毫秒。

在我看来,这应该对你有用(它对我有用)

$ original_timestamp =“1349042399999”;    date('d-m-Y',(int)$ original_timestamp);