参考地址 JS获取当前毫秒数(时间戳)汇总
方法1: Date.now()
Date对象的内置方法
let a = Date.now();
console.log(a); //1523619204809
1
2
方法2: getTime()
创建一个日期对象,调用该对象的getTime()方法
let d = new Date().getTime()
console.log(d); //1523619204809
1
2
方法3: valueOf()
基于Date类型的valueOf()方法,不会返回一个字符串,而是返回日期的毫秒表示
let c = new Date().valueOf();
console.log(c); //1523619204809
1
2
另外,基于Date类型valueOf()的特征,我们可以对两个日期进行比较大小:
let a = new Date('2000-02');
let b = new Date('2010-02');
console.log(b > a); //true
1
2
3
4
这里的b > a中的关系操作符> , b 和 a是对象,调用对象的valueOf()方法,而Date类型的valueOf()会返回对应的毫秒数,所以可以进行比较。
具体的有关大小比较的转化规则,之前博客有写到,JS中大于、小于的不同比较规则
方法4: +new Date()
let b = +new Date();
console.log(b); //1523619204809
1
2
+new Date()结果为什么是毫秒数?
其实这个涉及到JS中另外一个知识点,一元操作符(+或者-)对 非数值 的转换。
如果 +号 应用于对象之前,会首先调用找个对象的valueOf()和toString().
我们看一个例子:
let n = {
valueOf: function(){
return -1;
}
}
console.log(+n) // -1
1
2
3
4
5
6
7
+n调用了对象的valueOf(),结果是 -1
所以+new Date()这个方法又回到了方法3中的valueOf(),所以执行结果是相同的。
方法5:
Date.parse(new Date())