js实现unix
Unix时间戳简介
Unix时间戳是指从1970年1月1日00:00:00 UTC到当前时间的总秒数(或毫秒数),广泛用于计算机系统中记录时间。
获取当前Unix时间戳(秒级)
使用JavaScript的Date对象可以轻松获取当前时间的Unix时间戳(秒级):
const unixTimestampInSeconds = Math.floor(Date.now() / 1000);
console.log(unixTimestampInSeconds);
获取当前Unix时间戳(毫秒级)
如果需要更精确的时间戳,可以直接使用Date.now()获取毫秒级时间戳:

const unixTimestampInMilliseconds = Date.now();
console.log(unixTimestampInMilliseconds);
将日期转换为Unix时间戳
将特定日期转换为Unix时间戳:
const date = new Date('2023-10-01T12:00:00Z');
const unixTimestamp = Math.floor(date.getTime() / 1000);
console.log(unixTimestamp);
将Unix时间戳转换为日期
将Unix时间戳(秒级)转换为可读的日期格式:

const unixTimestamp = 1696147200;
const date = new Date(unixTimestamp * 1000);
console.log(date.toISOString());
处理时区问题
Unix时间戳始终是UTC时间,但在转换为本地时间时需要注意时区:
const unixTimestamp = 1696147200;
const date = new Date(unixTimestamp * 1000);
console.log(date.toLocaleString());
验证Unix时间戳
验证一个值是否为有效的Unix时间戳(秒级):
function isValidUnixTimestamp(timestamp) {
return Number.isInteger(timestamp) && timestamp >= 0 && timestamp <= 2147483647;
}
console.log(isValidUnixTimestamp(1696147200));
注意事项
- Unix时间戳通常为32位整数,最大值为2147483647(2038年1月19日03:14:07 UTC)。
- 在JavaScript中处理时间戳时,注意
Date对象使用毫秒级时间戳,而Unix时间戳通常是秒级。 - 对于长期存储或未来日期,考虑使用64位时间戳以避免2038年问题。






