在 javascript 中,将日期对象转换为数字最直接的方法是使用 date.prototype.gettime() 方法,它会返回该日期自 unix 纪元(1970年1月1日)以来的毫秒数。如果只需要获取秒数,可以将结果除以 1000 并取整。此外,使用一元加号运算符 +date 或调用 number(date) 也能触发隐式转换,得到相同的毫秒级时间戳。

getTime() 与一元运算符 +date 的区别是什么
这两种方式得到的数值结果是完全一致的,都代表毫秒级的时间戳。区别在于语义明确性:getTime() 是显式的 API 调用,代码意图清晰;而 +date 依赖类型强制转换机制,虽然简洁但可读性稍弱。在实际开发中,推荐优先使用 getTime() 以避免歧义。

const date = new Date('2023-10-01T12:00:00Z');
console.log(date.getTime()); // 输出: 1696156800000
console.log(+date); // 输出: 1696156800000
console.log(Number(date)); // 输出: 1696156800000
如何将日期转换为秒级时间戳
由于 getTime() 返回的是毫秒,若业务需要秒级时间戳(如大多数后端 API 要求),需将结果除以 1000 并使用 Math.floor() 去除小数部分。这样可以确保获得一个整数类型的秒数,避免浮点数精度问题。

const date = new Date('2023-10-01T12:00:00Z');
const seconds = Math.floor(date.getTime() / 1000);
console.log(seconds); // 输出: 1696156800
无效日期对象转换后的数字是多少
当 Date 构造函数无法解析输入时,会创建一个表示 "Invalid Date" 的对象。对该对象调用 getTime() 或进行数值转换时,都会返回 NaN(Not a Number)。这是因为内部时间值被标记为无效,任何数学运算都无法产生有效数字。开发者应在转换前通过 isNaN(date.getTime()) 检查日期有效性。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











