最推荐用 gettime() 获取毫秒级时间戳;+d 或 number(d) 等价但可读性低;秒级时间戳用 math.floor(d.gettime()/1000);当前时间戳优先用 date.now()。

JavaScript 中 Date 对象转时间戳,最常用、最推荐的方式是调用 getTime() 方法,它返回从 1970 年 1 月 1 日 00:00:00 UTC 到该日期的毫秒数(即毫秒级时间戳)。
使用 getTime() 获取毫秒级时间戳
这是标准、明确且兼容性最好的方式:
- 对任意 Date 实例调用
.getTime()即可 - 返回值是数字类型,单位为毫秒
- 即使传入无效日期(如
new Date('invalid')),也会返回NaN,建议校验
示例:
console.log(d.getTime()); // 1696516200000
用 + 操作符或 Number() 转换(隐式/显式转数字)
Date 对象在数值上下文中会自动调用 valueOf(),而 valueOf() 的行为与 getTime() 完全一致:
-
+d或Number(d)等价于d.getTime() - 写法更短,但可读性略低,适合简洁场景(如数组映射、一行表达式)
示例:
const d = new Date();console.log(+d); // 1717023456789
console.log(Number(d)); // 同上
获取秒级时间戳(常用于后端接口)
很多 API 要求的是秒级时间戳(10 位数字),只需把毫秒值除以 1000 并取整:
- 推荐用
Math.floor(d.getTime() / 1000)或~~(d.getTime() / 1000) - 避免直接用
parseInt(),防止字符串转换意外 - 注意:
Math.round()可能导致边界秒数偏移,一般用向下取整更稳妥
示例:
const d = new Date('2023-01-01T00:00:00Z');console.log(Math.floor(d.getTime() / 1000)); // 1672531200
快捷创建并获取当前时间戳
如果只是需要「当前时间」的时间戳,无需先建 Date 实例:
-
Date.now()—— 直接返回当前毫秒时间戳,性能更好、语义更清晰 -
+new Date()或new Date().getTime()效果相同,但多一次对象创建
示例:
console.log(Date.now()); // 推荐console.log(+new Date()); // 可用,稍逊
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











