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

JavaScript传入毫秒参数创建Date实例时返回日期异常

问题根因

JavaScript 内置Date构造函数接收数值类型时间参数时,默认单位是自UTC 1970年1月1日0点起经过的毫秒数。你传入的1655154491.8357913是带小数的秒级epoch时间戳,整数部分仅10位,和毫秒级时间戳差了1000倍量级,直接传入会被识别为距离epoch起点仅16亿余毫秒,换算后仅对应1970年1月的日期,完全不符合预期。

修复方法

将拿到的秒级时间戳乘以1000转换为毫秒单位后,再传入Date构造函数即可。注意JS原生Date仅支持毫秒级精度,小数部分转换为毫秒后自动取整不影响常规日期显示:

// 原始值为秒级epoch时间
let dateInSeconds = 1655154491.8357913;
// 转毫秒后解析
let parsedDate = new Date(dateInSeconds * 1000).toUTCString();

console.log(parsedDate);
// 正确输出:Wed, 15 Jun 2022 05:08:11 GMT
避坑提示
  • 快速判断时间戳单位:2000年-2030年区间内,毫秒级epoch时间戳整数部分为13位,秒级epoch时间戳整数部分为10位,传入Date前先做单位校验,就能避免这类单位不匹配的解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:39:17