You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中时间戳转换日期结果错误,请问问题出在哪里?

问题原因及解决办法

嘿,这个坑我之前踩过!你的问题核心出在时间戳的单位不匹配上:

PHP的date()函数默认只认秒级时间戳,但你传入的1466679909936是毫秒级时间戳(比标准秒级多了三位数字)。直接把毫秒数当成秒数传入,自然会算出一个远在未来的错误日期。

修复方案

有两种简单的解决方式:

方法1:将毫秒时间戳转为秒级

直接除以1000并取整(避免小数影响时间计算):

<?php 
$timestamp = floor(1466679909936 / 1000); // 转为秒级时间戳
echo date('Y-m-d H:i:s', $timestamp); // 输出:2016-06-23 01:05:09
?>

方法2:用DateTime类处理(PHP 7.0+推荐)

如果你的PHP版本在7.0及以上,用DateTime类会更灵活直观:

<?php 
$timestamp = 1466679909936;
$dateObj = (new DateTime())->setTimestamp($timestamp / 1000);
echo $dateObj->format('Y-m-d H:i:s'); // 输出:2016-06-23 01:05:09
?>

验证一下:1466679909936 ÷ 1000 = 1466679909.936,取整后得到的秒级时间戳1466679909,对应的正是你预期的2016年6月23日1点05分09秒。

内容的提问来源于stack exchange,提问作者user1557314

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 22:27:39