如何在 JavaScript 中获取时间戳?

我想要一个表示当前日期和时间的单个数字,就像Unix时间戳一样。


答案 1

时间戳(以毫秒为单位)

要获取自 Unix 纪元以来的毫秒数,请调用 Date.now

Date.now()

或者,使用一元运算符调用 Date.prototype.valueOf+

+ new Date()

或者,直接调用

new Date().valueOf()

若要支持 IE8 及更早版本(请参阅兼容性表),请为 以下各项创建填充程序Date.now

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

或者,直接调用 getTime

new Date().getTime()

时间戳(以秒为单位)

要获取自 Unix 纪元以来的秒数,即 Unix 时间戳

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

或者,按位或按底使用速度稍快,但也不太可读,并且将来可能会中断(请参阅说明 12):

Date.now() / 1000 | 0

以毫秒为单位的时间戳(更高分辨率)

立即使用性能

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());

答案 2

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

+new Date

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

Date.now()