如何在 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();