一尘不染

你如何在 JavaScript 中获得时间戳?

javascript

类似于 Unix 的时间戳,它是代表当前时间和日期的单个数字。无论是数字还是字符串。


阅读 198

收藏
2022-01-08

共1个答案

一尘不染

+ new Date()

一元运算符 likeplus触发对象中的valueOf方法Date并返回时间戳(没有任何更改)。

细节:

在几乎所有当前浏览器上,您都可以使用Date.now()毫秒为单位获取 UTC 时间戳;一个值得注意的例外是 IE8 及更早版本(请参阅兼容性表)。

不过,您可以轻松地为此制作一个垫片:

if (!Date.now) {
    Date.now = function() { return new Date().getTime(); }
}

要以为单位获取时间戳,您可以使用:

Math.floor(Date.now() / 1000)

或者,您可以使用:

Date.now() / 1000 | 0

这应该稍微快一点,但可读性也较差。

我建议使用Date.now()(与兼容性垫片)。它稍微好一点,因为它更短并且不会创建新Date对象。但是,如果您不想要垫片和最大兼容性,则可以使用“旧”方法以毫秒为单位获取时间戳:

new Date().getTime()

然后您可以将其转换为如下所示的秒数:

Math.round(new Date().getTime()/1000)

你也可以使用valueOf我们上面展示的方法:

new Date().valueOf()

以毫秒为单位的时间戳

var timeStampInMs = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now();

console.log(timeStampInMs, Date.now());
2022-01-08