基本内容

  • ECMAScript 的 Date 类型参考了 Java 早期版本中的 java.util.Date。
  • Date 类型将日期保存为自协调世界时(UTC,Universal Time Coordinated)时间 1970 年 1 月 1 日午夜(零时)至今所经过的毫秒数。
    • 使用这种存储格式,Date 类型可以精确表示 1970 年 1 月 1 日之前及之后 285616 年的日期。

创建

  • 要创建日期对象,就使用 new 操作符来调用 Date 构造函数
  • 在不给 Date 构造函数传参数的情况下,创建的对象将保存当前日期和时间;
1
let now = new Date();
  • 要基于其他日期和时间创建日期对象,必须传入其毫秒表示。
  • ECMAScript为此提供了两个辅助方法:Date.parse()和Date.UTC()
  • Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒数。规则如下:
格式 结果
月/日/年 5/23/2021
月名 日,年 May 23,2021
周几 月名 日 年 时:分:秒 时区 Sun May 23 2021 00:00:00 GMT-0700
YYYY-MM-DDTHH:mm:ss.sssZ 2021-05-23T00:00:00
  • 如果传给 Date.parse()的字符串并不表示日期,则该方法会返回 NaN;
  • 如果直接把表示日期的字符串传给 Date 构造函数,那么 Date 会在后台调用 Date.parse()。
  • Date.UTC()的参数是年、零起点月数(1 月是 0,2 月是 1,以此类推)、日(131)、时(023)、分、秒和毫秒这些参数中,只有前两个(年和月)是必需的;
  • 如果不提供日,那么默认为 1 日。其他参数的默认值都是 0。
  • ECMAScript 还提供了 Date.now()方法,ᤄ回表示方法执行时日期和时间的毫秒数。

继承的方法

  • Date 类型重写了 toLocaleString()、toString()和 valueOf()方法;
  • Date 类型的 toLocaleString()方法返回与浏览器运行的本地环境一致的日期和时间,这通常意։着格式中包含针对时间的 AM(上午)或 PM(下午),但不包含时区信息;
  • toString()方法通常返回ࣛ时区信息的日期和时间,而时间也是以 24 小时制(0~23)表示的
  • Date 类型的 valueOf()方法಩本就不返回字符串,这个方法被重写后ᤄ回的是日期的毫秒表示

日期格式化方法

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

日期/时间组件方法