3个回答
以毫秒为单位的时间戳
要获取自
Unix 纪元
以来的毫秒数,请调用
Date.now
:
Date.now()
或者,使用一元运算符
+
调用
Date.prototype.valueOf
:
+ new Date()
或者,直接调用
valueOf
:
new Date().valueOf()
要支持 IE8 及更早版本(请参阅
兼容性表
),为
Date.now
创建一个
shim
:
if (!Date.now) {
Date.now = function() { return new Date().getTime(); }
}
或者,调用
getTime
直接:
new Date().getTime()
以秒为单位的时间戳
要获取自 Unix 纪元 以来的秒数,即 Unix 时间戳 :
Math.floor(Date.now() / 1000)
或者,使用按位或向下取整稍微快一点,但可读性也较差,并且将来可能会中断(请参阅解释 1 、 2 ):
Date.now() / 1000 | 0
以毫秒为单位的时间戳(更高精度)
使用
performance.now
:
var isPerformanceSupported = (
window.performance &&
window.performance.now &&
window.performance.timing &&
window.performance.timing.navigationStart
);
var timeStampInMs = (
isPerformanceSupported ?
window.performance.now() +
window.performance.timing.navigationStart :
Date.now()
);
console.log(timeStampInMs, Date.now());
daveb
2008-10-21
我喜欢这个,因为它很小:
+new Date
我也喜欢这个,因为它很短,并且与现代浏览器兼容,并且有超过 500 人投票认为它更好:
Date.now()
xer0x
2011-02-18
JavaScript 使用自纪元以来的毫秒数,而大多数其他语言使用秒数。您可以使用毫秒,但只要您将值传递给 PHP,PHP 本机函数可能会失败。因此,为确保万无一失,我总是使用秒数,而不是毫秒。
这将为您提供 Unix 时间戳(以秒为单位):
var unix = Math.round(+new Date()/1000);
这将为您提供自纪元以来的毫秒数(不是 Unix 时间戳):
var milliseconds = new Date().getTime();
Daithí
2011-05-11