我正在尝试使用以下语句转换带有 php 5.3 的纪元时间戳
date('d-m-Y',strtotime('1349042399999'));
转换为人类可读的格式并得到错误的结果:01-01-1970
应该返回什么30-09-2012
。我一直在搜索并创建以下主题PHP strtotime 在日期列为空但对我的情况没有帮助时返回 1970 年的日期。
我正在尝试使用以下语句转换带有 php 5.3 的纪元时间戳
date('d-m-Y',strtotime('1349042399999'));
转换为人类可读的格式并得到错误的结果:01-01-1970
应该返回什么30-09-2012
。我一直在搜索并创建以下主题PHP strtotime 在日期列为空但对我的情况没有帮助时返回 1970 年的日期。
原因是该时间戳中嵌入了毫秒,这导致它超过了整数溢出限制。
砍掉最后 3 个字符,你就可以开始了:
$original_timestamp = "1349042399999";
$timestamp = (int) substr($original_timestamp,0,-3);
echo date('d-m-Y',$timestamp);
我相信第二个 Rikudo 解决方案之所以有效,是因为强制转换为 int,而不是因为修剪毫秒。
在我看来,这应该对你有用(它对我有用)
$original_timestamp = "1349042399999"; date('dmY', (int) $original_timestamp);
通过使用strtotime
,您正在尝试将时间戳转换为另一个时间戳。您的时间戳也以微秒为单位。该date
函数只需要没有微秒的时间戳,如下所示:
date('d-m-Y',substr('1349042399999', 0, -3));