问题

如何在JavaScript中获取时间戳记?

与Unix的时间戳类似的东西,即表示当前时间和日期的单个数字.可以是数字或字符串.



解决方法

短& Snazzy:

+ new Date()

plus 这样的一元运算符会触发 Date 对象中的 valueOf 方法,并返回时间戳(没有任何更改).

详情:

在几乎所有目前的浏览器上,您都可以使用 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()(带兼容性shim).它稍微更好,因为它更短,不创建新的 Date 对象.但是,如果你不想要一个shim&最大兼容性,则可以使用"旧"方法以毫秒获取时间戳记:

new Date().getTime()

然后,您可以将其转换为秒:

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

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

new Date().valueOf()



相关问题推荐