本文已参与「新人创作礼」活动,一起开启掘金创作之路
1. 创建日期对象
使用 new 操作符来调用 Date 构造函数:
- 不传参时,创建的对象将保存当前日期和时间
let now = new Date();
- 要基于其他日期和时间创建日期对象,必须传入其毫秒表示, ECMAScript为此提供了两个辅助方法:Date.parse()和 Date.UTC()
Date.parse():
Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数。
所有实现都必须支持下列日期格式:
- “月/日/年”,如"10/24/2021";
- “月名 日, 年”,如"Oct 24, 2021";
- “周几 月名 日 年 时:分:秒 时区”,如"Sun Oct 24 2021 22:44:00 GMT+0800";
- ISO 8601 扩展格式“YYYY-MM-DDTHH:mm:ss.sssZ”,如 2021-10-24T22:44:00(只适用于兼容 ES5 的实现)。
如果直接把表示日期的字符串传给 Date 构造函数,那么 Date 会在后台调用 Date.parse() 也就是说:
// 等价于 let today = new Date(Date.parse("Oct 24, 2021"));
let today = new Date("Oct 24, 2021");
Date.UTC()
传给 Date.UTC()的参数是年、零起点月数(1 月是 0,2 月是 1,以此类推)、(1~ 31)、时(0~23)、分、秒和毫秒。 这些参数中,只有前两个(年和月)是必需的。 如果不提供日,那么默认为 1 日。其他参数的默认值都是 0
//GMT 时间 2021 年 10 月 24 日下午 22 点 52 分 0 秒,根据GMT时间生成本地时间
let now = new Date(Date.UTC(2021, 9, 24, 22, 52, 00));
// 隐式调用时有区别:
// 直接生成本地时间 2021 年 10 月 24 日下午 22 点 52 分 0 秒
let now = new Date(2021, 9, 24, 22, 52, 00);
- Date.now()
返回表示方法执行时日期和时间的毫秒数
2. 继承的方法
-
toLocaleString() 返回与浏览器运行的本地环境一致的日期和时间(不包含时区信息), 12小时制表示。
-
toString() 返回带时区信息的日期和时间,而时间以 24 小时制表示
-
valueOf() 返回日期的毫秒表示
3. 日期格式化方法
-
toDateString() 显示日期中的周几、月、日、年(当前时间)
-
toTimeString() 显示日期中的时、分、秒和时区(当前时间)
-
toLocaleDateString() 显示日期中的周几、月、日、年(当前时间和时区)
-
toLocaleTimeString() 显示日期中的时、分、秒(当前时间和时区)
-
toUTCString() 显示完整的 UTC 日期(当前时间)