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


当前回答

对于微秒分辨率的时间戳,有性能。现在:

function time() { 
  return performance.now() + performance.timing.navigationStart;
}

例如,这可能产生1436140826653.139,而Date.now仅产生143614086653。

其他回答

更简单的方法:

var timeStamp=event.timestamp || new Date().getTime();

Date.getTime()方法可以稍微调整一下:

getTime方法返回的值是毫秒数自1970年1月1日00:00:00 UTC开始。

将结果除以1000得到Unix时间戳,必要时为floor:

(new Date).getTime() / 1000

Date.valueOf()方法在功能上等同于Date.getTime(),这使得可以对Date对象使用算术运算符来获得相同的结果。在我看来,这种方法会影响可读性。

对于lodash和下划线用户,请使用_.now。

var timestamp = _.now(); // in milliseconds

前几天,我从JQueryCookie的源代码中学习了一种将给定的Date对象转换为Unix时间戳的非常酷的方法。

下面是一个示例:

var date = new Date();
var timestamp = +date;
time = Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))/1000);