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

为何JavaScript中new Date(1680907460.)返回零纪元而Date()正常?

问题解答

这不是语法疏漏,是Date作为普通函数和构造函数调用时的行为差异,再加上时间戳单位的问题导致的:

  • 当你直接执行dt = Date(1680907460.)时,Date是作为普通函数被调用的——不管你传什么参数,它都会直接返回当前本地时间的字符串,和你传入的时间戳完全无关。你看到的4月17日其实是执行这段代码时的当前时间。
  • 当你执行dt = new Date(1680907460.)时,Date是作为构造函数被调用的:传入的数字会被当作毫秒级时间戳(从1970-01-01 00:00:00 UTC开始计算的毫秒数)。你给的1680907460是秒级时间戳,直接传入的话,相当于只过了约19.45天,所以得到的日期是1970年1月下旬(你说的“零纪元”应该是表述偏差)。

要让构造函数返回正确的4月17日时间,需要把秒级时间戳转成毫秒:

dt = new Date(1680907460. * 1000)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:42:06