JS时间戳的应用

206 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路


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 的时间更早');
}

在这里插入图片描述 这里当然直接 date1date2 比较就可以了。

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} 秒`);

在这里插入图片描述