1. 什么是时间戳
时间戳:是指从格林威治时间1970年01月01日00时00分00秒(UTC/GMT的午夜,即
北京时间1970年01月01日08时00分00秒
)起至现在的总秒数
2. 时间戳的获取
- 获取当前执行方法时的时间
Date.now()
:返回表示方法执行时日期和时间的毫秒数
console.log(Date.now());
- 将指定日期转换为时间戳
精确到毫秒
let date = new Date('2022-07-12 23:50:50:121')
console.log(date.getTime());
console.log(date.valueOf());
- 还有一个
Date.parse()
,它的用法有所不同:
直接传具体日期,精确到毫秒
console.log(Date.parse('2022-07-12 23:50:50:121'));
传日期对象,精确到秒,将毫秒数变为 000
console.log(Date.parse(date));
3. 时间戳的应用
- 比较日期大小
let date1 = new Date('2022-07-12 23:50:50:121');
let date2 = new Date('2022-07-12 23:50:54:100');
if (date1.getTime() < date2.getTime()) {
console.log('date1 的时间更早');
}
这里当然直接 date1
和 date2
比较就可以了。
if (date1 < date2) {
console.log('date1 的时间更早');
}
- 用来计时
const lastTime = new Date('2022-07-11 23:50:50:121');
const nowTime = Date.now();
// 将毫秒转换为秒
const dur = parseInt(nowTime - lastTime) / 1000;
// 天数
const days = parseInt(dur / 3600 / 24);
// 小时
const hours = parseInt(dur / 3600 % 24);
// 分钟
const minutes = parseInt(dur / 60 % 60);
// 秒
const seconds = parseInt(dur % 60);
console.log(`距离 lastTime 已经过去了 ${days < 10 ? '0' + days : days} 天 ${hours} 小时 ${minutes} 分钟 ${seconds} 秒`);