基本引用类型——Date

一、Date

Data类型将日期保存为自协调世界时间, 时间 1970 年 1 月 1 日午夜(零时)至今所 经过的毫秒数。使用这种存储格式,Date
类型可以精确表示 1970 年 1 月 1 日之前及之后 285616 年的日期。

使用new操作符来调用Data构造函数

let now = new Date(); 

在不给 Date 构造函数传参数的情况下,创建的对象将保存当前日期和时间。 要基于其他日期和时 间创建日期对象,必须传入其毫秒表示(UNIX 纪元 1970 年 1 月 1 日午夜之后的毫秒数)。ECMAScript 为此提供了两个辅助方法:Date.parse()和 Date.UTC()。
Date.parse()方法接收一个表示日期的字符串参数,尝试将这个字符串转换为表示该日期的毫秒 数。

所有实 现都必须支持下列日期格式:
● “月/日/年”,如"5/23/2019";
● “月名 日, 年”,如"May 23,2019";
● “周几 月名 日 年 时:分:秒 时区”,如"Tue May 23 2019 00:00:00 GMT-0700";
●ISO 8601 扩展格式“YYYY-MM-DDTHH:mm:ss.sssZ”,如 2019-05-23T00:00:00(只适用于 兼容ES5 的实现)。

比如,要创建一个表示“2019 年 5 月 23 日”的日期对象,可以使用以下代码:

let someDate = new Date(Date.parse("May 23, 2019")); 
console.log(someDate)

如果传给 Date.parse()的字符串并不表示日期,则该方法会返回 NaN。如果直接把表示日期的字 符串传给 Date 构造函数,那么 Date 会在后台调用 Date.parse()。换句话说,下面这行代码跟前面 那行代码是等价的:

 let someDate = new Date("May 23, 2019");  
console.log(someDate);

注意: 不同的浏览器对 Date 类型的实现有很多问题。比如,很多浏览器会选择用当前日
期替代越界的日期,因此有些浏览器会将"January 32, 2019"解释为"February 1, 2019"。Opera
则会插入当前月的当前日,返回"January 当前日, 2019"。就是说,如 果是在 9 月 21 日运行代码,会返回"January
21, 2019"。

Date.UTC()方法也返回日期的毫秒表示,但使用的是跟 Date.parse()不同的信息来生成这个值。 传给 Date.UTC()的参数是年、零起点月数(1 月是 0,2 月是 1,以此类推)、日(131)、时(023)、 分、秒和毫秒。这些参数中,只有前两个(年和月)是必需的。如果不提供日,那么默认为 1 日。其他 参数的默认值都是 0。

1.继承的方法

Date 类型的 toLocaleString()方法返回与浏览器 运行的本地环境一致的日期和时间。 这通常意味着格式中包含针对时间的 AM(上午)或 PM(下午), 但不包含时区信息(具体格式可能因浏览器而不同)。

let date=new Date()
console.log(date.toLocaleString())
console.log(date.toString() )

Date 类型的 valueOf()方法根本就不返回字符串,这个方法被重写后返回的是日期的毫秒表示。 因此,操作符(如小于号和大于号)可以直接使用它返回的值。比如下面的例子 :

let date1 = new Date(2019, 0, 1); // 2019 年 1 月 1 日
let date2 = new Date(2019, 1, 1); // 2019 年 2 月 1 日
console.log(date1 < date2); // true
console.log(date1 > date2); // false

2.日期格式化方法

Date 类型有几个专门用于格式化日期的方法,它们都会返回字符串:
● toDateString()显示日期中的周几、月、日、年(格式特定于实现);
● toTimeString()显示日期中的时、分、秒和时区(格式特定于实现);
● toLocaleDateString()显示日期中的周几、月、日、年(格式特定于实现和地区);
● toLocaleTimeString()显示日期中的时、分、秒(格式特定于实现和地区);
● toUTCString()显示完整的 UTC 日期(格式特定于实现)。

注意: 还有一个方法叫 toGMTString(),这个方法跟 toUTCString()是一样的,目的
是为了向后兼容。不过,规范建议新代码使用 toUTCString()。

3.日期/时间组件方法

Date 类型剩下的方法(见下表)直接涉及取得或设置日期值的特定部分。注意表中“UTC 日期”, 指的是没有时区偏移(将日期转换为 GMT)时的日期。
2025-04-07 16:41:32
日期/时间组件方法

  1. getTime() 返回日期的毫秒表示;与 valueOf()相同
  2. setTime(milliseconds) 设置日期的毫秒表示,从而修改整个日期
  3. getFullYear() 返回 4 位数年(即 2019 而不是 19)
  4. getUTCFullYear() 返回 UTC 日期的 4 位数年
  5. setFullYear(year) 设置日期的年(year 必须是 4 位数)
  6. setUTCFullYear(year) 设置 UTC 日期的年(year 必须是 4 位数)
  7. getMonth() 返回日期的月(0 表示 1 月,11 表示 12 月)
  8. getUTCMonth() 返回 UTC 日期的月(0 表示 1 月,11 表示 12 月)
  9. setMonth(month) 设置日期的月(month 为大于 0 的数值,大于 11 加年)
  10. setUTCMonth(month) 设置 UTC 日期的月(month 为大于 0 的数值,大于 11 加年)
  11. getDate() 返回日期中的日(1~31) getUTCDate() 返回 UTC 日期中的日(1~31)
  12. setDate(date) 设置日期中的日(如果 date 大于该月天数,则加月)
  13. setUTCDate(date) 设置 UTC 日期中的日(如果 date 大于该月天数,则加月)
  14. getDay() 返回日期中表示周几的数值(0 表示周日,6 表示周六)
  15. getUTCDay() 返回 UTC 日期中表示周几的数值(0 表示周日,6 表示周六)
  16. getHours() 返回日期中的时(0~23) getUTCHours() 返回 UTC 日期中的时(0~23)
  17. setHours(hours) 设置日期中的时(如果 hours 大于 23,则加日)
  18. setUTCHours(hours) 设置 UTC 日期中的时(如果 hours 大于 23,则加日)
  19. getMinutes() 返回日期中的分(0~59)
  20. getUTCMinutes() 返回 UTC 日期中的分(0~59)
  21. setMinutes(minutes) 设置日期中的分(如果 minutes 大于 59,则加时)
  22. setUTCMinutes(minutes) 设置 UTC 日期中的分(如果 minutes 大于 59,则加时)
  23. getSeconds() 返回日期中的秒(0~59)
  24. getUTCSeconds() 返回 UTC 日期中的秒(0~59)
  25. setSeconds(seconds) 设置日期中的秒(如果 seconds 大于 59,则加分)
  26. setUTCSeconds(seconds) 设置 UTC 日期中的秒(如果 seconds 大于 59,则加分)
  27. getMilliseconds() 返回日期中的毫秒
  28. getUTCMilliseconds() 返回 UTC 日期中的毫秒
  29. setMilliseconds(milliseconds) 设置日期中的毫秒
  30. setUTCMilliseconds(milliseconds) 设置 UTC 日期中的毫秒
  31. getTimezoneOffset() 返回以分钟计的 UTC 与本地时区的偏移量(如美国 EST 即“东部标准时间” 返回
    300,进入夏令时的地区可能有所差异)

你可能感兴趣的:(JS,javascript,前端,开发语言)