协慌网

登录 贡献 社区

你如何获得 JavaScript 的时间戳?

如何在 JavaScript 中获取时间戳?

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

答案

短而时髦:

+ 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() (兼容垫片)。它稍微好一些,因为它更短并且不会创建新的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());

我喜欢这个,因为它很小:

+new Date

我也喜欢这个,因为它与现代浏览器一样短,并且与现代浏览器兼容,超过 500 人投票表示它更好:

Date.now()

JavaScript 使用自纪元以来的毫秒数,而大多数其他语言使用秒。您可以使用毫秒,但只要您传递一个值来表示 PHP,PHP 本机函数可能会失败。所以要确保我总是使用秒,而不是毫秒。

这将为您提供一个 Unix 时间戳(以秒为单位):

var unix = Math.round(+new Date()/1000);

这将为您提供自纪元以来的毫秒数(不是 Unix 时间戳):

var milliseconds = new Date().getTime();

短而时髦:

+ 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() (兼容垫片)。它稍微好一些,因为它更短并且不会创建新的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());

我喜欢这个,因为它很小:

+new Date

我也喜欢这个,因为它与现代浏览器一样短,并且与现代浏览器兼容,超过 500 人投票表示它更好:

Date.now()

JavaScript 使用自纪元以来的毫秒数,而大多数其他语言使用秒。您可以使用毫秒,但只要您传递一个值来表示 PHP,PHP 本机函数可能会失败。所以要确保我总是使用秒,而不是毫秒。

这将为您提供一个 Unix 时间戳(以秒为单位):

var unix = Math.round(+new Date()/1000);

这将为您提供自纪元以来的毫秒数(不是 Unix 时间戳):

var milliseconds = new Date().getTime();