JavaScript 获取 Unix 时间戳的三种方法
本文详细讲解如何在 JavaScript 中获取当前的 Unix 时间戳,包括秒级和毫秒级两种常见需求。文中提供了基于 Date 对象的经典实现方式,以及现代 JavaScript 标准的便捷写法,帮助您快速在项目中集成时间戳功能。
核心结果与目标
Unix 时间戳通常指从 1970 年 1 月 1 日 00:00:00 UTC 到当前时间的秒数或毫秒数。在 JavaScript 开发中,最常见的需求是获取当前时刻的时间戳,用于日志记录、缓存失效判断或 API 数据签名。根据业务场景不同,可能需要精确到毫秒(数值较大)或秒(数值较小)。
准备条件
无需安装任何第三方库,浏览器原生 JavaScript 环境即可运行所有示例代码。确保您的运行环境支持所提及的 JavaScript 版本特性(如 ES2022)。
具体操作顺序
第 1 步:使用 getTime() 获取毫秒级时间戳
目的:获取距离 1970 年 1 月 1 日的毫秒总数,这是最通用的做法,兼容所有 JS 环境。
入口:页面 JavaScript 脚本或 Node.js 环境。
动作:创建 Date 实例并调用 getTime() 方法。
<!DOCTYPE html>
<html>
<body>
<p id="demo">点击按钮显示自 1970 年以来的毫秒数:</p>
<button onclick="showTimestamp()">显示时间戳</button>
<script>
function showTimestamp() {
// 创建当前时间的 Date 对象
var d = new Date();
// 获取毫秒级时间戳
var timestamp = d.getTime();
// 将结果写入页面元素
var x = document.getElementById("demo");
x.innerHTML = "当前毫秒时间戳:" + timestamp;
}
</script>
</body>
</html>
完成状态:页面上会显示一个长整型数字(如 1678888888000),代表当前毫秒数。
第 2 步:使用 Date.now() 获取秒级时间戳
目的:许多后端接口(如 Python、PHP)习惯接收秒级时间戳,需进行整数除法转换。
入口:全局 Date 对象方法。
动作:调用 Date.now() 获取毫秒,除以 1000 并使用 Math.floor() 向下取整。
// 推荐方式:简洁且高性能
var secondsTimestamp = Math.floor(Date.now() / 1000);
console.log(secondsTimestamp); // 例如:1678888888
// 替代方式:等价于 getTime()
var secondsFromGetTime = Math.floor(new Date().getTime() / 1000);
console.log(secondsFromGetTime);
完成状态:控制台输出一个较短的整型数字,适合大多数服务器端逻辑。
第 3 步:使用 getTimestamp() 获取标准化时间戳(ES2022+)
目的:ECMAScript 2022 引入了更明确的 API 来获取秒级时间戳,语义更清晰。
入口:新版浏览器或 Node.js 环境。
动作:直接调用 getTimestamp() 方法。
// 仅适用于支持 ES2022 的环境
var standardSeconds = new Date().getTimestamp();
console.log(standardSeconds);
注意:如果需要在旧版环境中兼容,请使用 Math.floor(Date.now() / 1000)。
关键注意事项
- 时区问题:JavaScript 的
Date对象返回的时间戳是基于 UTC 的绝对值,不随本地时区变化而变化,这保证了跨时区的一致性。 - 精度差异:毫秒级时间戳精度为 1ms,秒级为 1s。在进行时间比较或存储前,请确认服务端或第三方服务要求的精度单位。
- 负数情况:如果
Date对象代表的是 1970 年之前的时间,getTime()将返回负数。对于现代应用,这通常不是问题,但在处理历史数据时需留意。
简要总结
在 JavaScript 中获取时间戳非常简单。若需要毫秒级精度,直接使用 new Date().getTime();若需要秒级精度以适应多数后端系统,推荐使用 Math.floor(Date.now() / 1000)。随着标准演进,getTimestamp() 也将成为更直观的获取秒级时间戳的方式。
以上就是 JavaScript 获取 Unix 时间戳的详细教程,更多关于 JavaScript 日期处理技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









