JS获取13位毫秒数(时间戳)

2021-04-25 09:55:58

参考地址 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())


  • 2017-01-16 15:09:40

    Javascript模块化编程(一):模块的写法

    随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。

  • 2017-01-16 15:16:24

    Javascript模块化编程(二):AMD规范

    AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

  • 2017-01-16 15:19:24

    RequireJS 入门指南

    如今最常用的JavaScript库之一是RequireJS。最近我参与的每个项目,都用到了RequireJS,或者是我向它们推荐了增加RequireJS。在这篇文章中,我将描述RequireJS是什么,以及它的一些基础场景。

  • 2017-01-16 15:22:30

    CommonJS规范

    CommonJS模块规范。 根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

  • 2017-01-17 15:42:03

    vue-cli 发布(译)

    当我们真正开发一个应用的时候,我们不可避免的会用到一大堆的工具,模块化、预处理器、热模块加载、代码校验和测试。这些工具对于一个需要长期维护的大型应用是必须的,但是项目初始化将会是让人痛苦的事情。这就是为什么我们做了 vue-cli 。