JavaScript 如何获取时间戳

早上赶地铁时,你有没有过这样的经历:手机上的购票软件突然弹出“距离发车只剩30秒”的提醒,或者外卖APP显示“还有15分钟送达”?这些精准的时间计算背后,都用到了一个叫“时间戳”的东西。它就像一个统一的“时间密码”,不管是电脑、手机还是网页,用它来算时间都不会出错。很多做网页开发的朋友常问,怎么用JavaScript快速拿到这个“时间密码”?今天就用大家能听懂的话,把方法讲清楚。

最常用:Date.now(),像拿手机看当前时间

想象你用手机打开时钟APP,点一下“当前时间”,就能直接看到现在的时间,不用翻日历、算小时。JavaScript里的Date.now()就像这个功能,它会直接返回当前时间的时间戳,单位是毫秒。比如现在写这篇文章的时刻,它返回的数字大概是1700000000000左右——听起来是一大串数字,其实就是从1970年1月1日凌晨(这个时间是全球统一的“时间起点”)到现在,过了多少毫秒。

JavaScript 如何获取时间戳

举个生活化的例子:你想知道自己刷短视频刷了多久,打开控制台敲console.log(Date.now()),刷完再敲一次,两个数字相减,就是刷视频的时长,是不是很简单?这个方法不需要额外创建对象,代码最少,是开发里用得最多的。

经典老方法:new Date().getTime(),像查手表再记时间

如果说Date.now()是直接拿手机,那new Date().getTime()就是先拿出一块手表,再看时间记下来。new Date()会创建一个代表当前时间的“时间对象”,就像你把时间信息存在了自己的小本子里,然后用.getTime()方法,从这个小本子里取出对应的时间戳。

比如你想在网页里显示“当前时间戳”,可以写代码:

`javascript

const now = new Date();

const timestamp = now.getTime();

console.log(timestamp);

`

为什么这个方法经典?因为它不仅能拿当前时间的戳,还能拿指定时间的戳——比如你想知道2024年春节的时间戳,只要把new Date()改成new Date('2024-02-10'),再调用.getTime()就行,就像你可以用手表查过去或未来的时间。

还有个容易忽略的方法:+new Date(),像直接看手表的数字

如果说前两个是“拿手机”和“拿手表记下来”,那+new Date()就是直接把手表显示的数字读出来。这里的+号相当于“把时间对象转成数字”,而JavaScript里数字正好是时间戳,所以它会自动返回时间戳。

举个小例子:你在做倒计时活动,需要每秒更新一次时间戳,用+new Date()就很方便,代码可以写成:

`javascript

setInterval(() => {

console.log(+new Date());

}, 1000);

`

每1秒就会输出一次新的时间戳,和前两个方法结果一样。不过这个方法是“隐式转换”,刚学代码的朋友可能不太习惯,所以开发里不如前两个常用,但也能满足需求。

选哪个方法?看你的需求

如果只是拿当前时间的戳,选Date.now()最快,代码最少;如果需要指定某个时间(比如用户的生日、活动的截止时间),就用new Date(指定时间).getTime();要是写代码想偷懒、少写几个字,+new Date()也能用。

记住时间戳的核心用途:它是“计算时间差的统一标准”,不管是做倒计时、算文章发布时间,还是统计用户停留页面的时长,用它都不会出错,因为所有设备用的都是同一个时间起点,不会出现有的电脑时间快、有的慢的问题。

上一篇 TypeScript 如何做类型检查