这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战前端
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 函数,省略了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()
接受的参数格式是:年、零起点月数(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
此外,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