ECMAScript 的基本引用类型——Date 讲解

这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战前端

Date 类型

ECMAScript 的 Date 类型是参考 Java 早期版本的 java.util.Date。Date 类型保存的是自 1970 年1 月 1 日午夜至今所通过的毫秒数,能够精确表示 1970 年 1 月1 日以后 285616 年的日期。示例:java

let now = new Date();
复制代码

默认不带参数的状况下,建立的对象将保存当前的日期和时间。若是要基于别的日期和时间建立,须要传入毫秒数。 不过直接传毫秒数有点不太友好,ECMAScript 提供了两个辅助方法,Date.parse()Date.UTC()。能够将指定日期转成毫秒数。web

Date.parse()

Date.parse()支持如下日期格式:浏览器

  • 月/日/年,例如:5/20/2020
  • 月名 日,年,例如:May 20 2020
  • 周几 月名 日 年 时:分:秒 时区,如Tue May 20 202000:00:00 GMT-0700
  • ISO 8601扩展格式 YYYY-MM-DDTHH:mm:ss.sssZ,如2020-05-20T00:00:00(只适用于兼容ES5的实现)

若是把以上标识日期的字符串直接传给 Date 函数,省略了Date.parse(),那么 Date 会在后台默认调用,也就是说,能够省略Date.parse()方法。 示例:markdown

let loveDate = new Date(Date.parse("May 20, 2020"));
// or
let loveDate = new Date("May 20, 2020");
复制代码

Date.UTC()

Date.UTC()接受的参数格式是:年、零起点月数(1月是0,2月是1,以此类推)、日(1-31)、时(0-23)、分、秒和毫秒。这些参数中,只有前两个(年和月)是必需的。示例:函数

// GMT时间2000年1月1日零点
let y2k = new Date(Date.UTC(2000, 0));

// GMT时间2005年5月5日下午5点55分55秒
let allFives = new Date(Date.UTC(2005, 4, 5, 17, 55, 55));
复制代码

Date.parse()同样,Date.UTC()也会被 Date 构造函数隐式调用,但有一个区别:这种状况下建立的是本地日期,不是 GMT 日期。post

Date.now()

此外,ECMAScript 还提供了Date.now()方法,返回执行时的日期时间毫秒数,每每用在代码分析中。示例:网站

// 起始时间
let start = Date.now();

// 调用函数
doSomething();

// 结束时间
let stop = Date.now();

result = stop - start;
复制代码

日期格式化

Date 类型有几个专门用于格式化日期的方法,它们都会返回字符串:ui

  • toDateString()显示日期中的周几、月、日、年(格式特定于实现)
  • toTimeString()显示日期中的时、分、秒和时区(格式特定于实现)
  • toLocaleDateString()显示日期中的周几、月、日、年(格式特定于实现和地区)
  • toLocaleTimeString()显示日期中的时、分、秒(格式特定于实现和地区)
  • toUTCString()显示完整的UTC日期(格式特定于实现)

这些方法的输出与toLocaleString()toString()同样,会因浏览器而异。所以不能用于在用户界面上一致地显示日期。url

欢迎阅读其它文章

相关文章
相关标签/搜索