我想要一个表示当前日期和时间的数字,比如Unix时间戳。


当前回答

console.log(newDate().valueOf());//返回自epoch以来的毫秒数

其他回答

我还没见过

Math.floor(Date.now() / 1000); // current time in seconds

另一个我还没看到的是

var _ = require('lodash'); // from here https://lodash.com/docs#now
_.now();

在JavaScript中获取时间戳

在JavaScript中,时间戳是自1970年1月1日以来经过的毫秒数。如果您不打算支持<IE8,可以使用

new Date().getTime(); + new Date(); and Date.now();

直接获取时间戳,而无需创建新的Date对象。

返回所需的时间戳

new Date("11/01/2018").getTime()

您只能使用

var timestamp=new Date().getTime();console.log(时间戳);

以获取当前时间戳。不需要做任何额外的事情。

时间戳(毫秒)

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

Date.now()

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

+ new Date()

或者,直接调用valueOf:

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)

或者,使用逐位或逐层稍快,但可读性也较低,将来可能会中断(参见解释1、2):

Date.now() / 1000 | 0

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

使用performance.now:

var isPerformanceSupported=(窗口.性能&&窗口.性能.当前&&窗口.性能.计时&&窗口.性能.计时.导航开始);var timeStampInMs=(是否支持性能?window.performance.now()+窗口.性能.计时.导航开始:日期.now());console.log(timeStampInMs,Date.now());

建议的正确方法是Number(new Date()),就代码可读性而言,

此外,UglifyJS和Google闭包编译器将降低已解析代码逻辑树的复杂性(如果您使用其中一个来隐藏/缩小代码)。

对于时间分辨率较低的Unix时间戳,只需将当前数字除以1000,保持整数。