JavaScript基本引用类型-Date

46 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路


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 日期(当前时间)