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

PHP中时间戳转yyyy-mm-dd hh:ii:ss时年份错误的解决方法

毫秒级时间戳格式化后年份错误的解决办法

你的问题根源在于:PHP的date()函数和DateTime::setTimestamp()方法只支持秒级时间戳,但你传入的是毫秒级时间戳(比如1679909217390),直接使用会导致时间计算严重偏移,所以出现55204这类错误年份。

只需将毫秒时间戳转换为秒级时间戳(除以1000并取整),就能得到正确的格式化结果,以下是两种方法的修正代码:

方法1:使用date()函数

// 将毫秒时间戳转为秒级,用intval确保是整数类型
$formattedDate = date('Y-m-d H:i:s', intval($comments[0]['created'] / 1000));

方法2:使用DateTimeImmutable类

// 先转换为秒级时间戳再设置
$date = new DateTimeImmutable();
$actualDate = $date->setTimestamp(intval($comments[0]['created'] / 1000));
$formattedDate = $actualDate->format('Y-m-d H:i:s');

如果需要保留毫秒精度(格式化时不需要的话可以忽略),也可以用更精确的方式实例化DateTime:

$date = DateTimeImmutable::createFromFormat('U.u', sprintf('%.3F', $comments[0]['created'] / 1000));
$formattedDate = $date->format('Y-m-d H:i:s');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:32:48