精简版
+ new Date()
使用一元运算符 + 触发Date对象中的valueOf
方法,返回时间戳
详细版
在几乎所有当前浏览器上,都可以使用它Date.now()
来获取UTC时间戳(以毫秒为单位)
一个值得注意的例外是IE8及更早版本(参见兼容性表)
可以简单地模拟出一个新 API 来实现
(make a shim)
if (!Date.now) {
Date.now = function() { return new Date().getTime(); }}
获取以秒为单位的时间戳
Math.floor(Date.now() / 1000)|0
可能会快一点,但是可读性比较差
它会将64位双精度转换为32位整数。由于32位整数溢出,时间戳将在2038年后中断。
我比较推荐使用 Date.now()
,因为这样代码比较简短切不会创建新的日期对象。然而,如果你不想要 模拟新api & 最高的兼容性,可以使用旧方法获得毫秒时间戳
new Date().getTime()
秒时间戳
Math.round(new Date().getTime()/1000)
同时也可以使用上面说到的valueOf
方法
new Date().valueOf()
虽然+new Data
很炫酷,但其他开发人员比较难读懂, Date.now()
更清晰