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

如何将Timestamp的秒、纳秒参数在前端转换为Date类型

前端秒数+纳秒转Date对象实现方案

首先明确JavaScript内置Date对象的构造逻辑:仅支持毫秒级时间戳作为数值入参,所以需要先把秒、纳秒统一转换成毫秒单位再构造实例。

具体实现步骤

  • 第一步:将秒数转换为毫秒:seconds * 1000
  • 第二步:将纳秒数转换为毫秒:Math.floor(nanoseconds / 1000000),由于Date不支持小数精度的毫秒值,这里直接取整即可
  • 第三步:将两部分毫秒值相加,传入Date构造函数就能得到目标时间对象

示例代码

针对你给出的参数:

_nanoseconds: 0
_seconds: 1586833200

对应转换代码如下:

function timestampToDate(seconds, nanoseconds) {
  // 计算总毫秒数
  const totalMilliseconds = seconds * 1000 + Math.floor(nanoseconds / 1000000);
  return new Date(totalMilliseconds);
}

// 代入参数测试
const targetDate = timestampToDate(1586833200, 0);
console.log(targetDate); // 输出:2020-04-14T07:00:00.000Z

注意事项

  • 原生Date对象最高仅支持毫秒精度,纳秒级精度无法完全保留,如果业务需要保留纳秒信息,可以单独存储纳秒字段做额外处理
  • 注意确认入参的seconds是秒级Unix时间戳,不要和毫秒级时间戳混淆,否则会得到完全不符合预期的时间结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:15:03