日期对象
UTC时间
:UTC协调世界时即格林威治平太阳时间,是指格林威治所在地的标准时间,也是表示地球自转速率的一种形式,UTC基于国际原子时间。(百度的)
GMT时间
:GMT指的是格林威治中央区时。
创建日期对象就要使用new关键字调用Date构造函数
let now = new Date();
如果不给Date
构造函数参数,那么就会保存当前日期和时间。如果需要创建指定的日期对象,那么就需要给Date()
构造函数传入日期的毫秒表示。ECMAScript提供了两种转毫秒的方法。Date.parse() Date.UTC()
。
Date.parse()
它接收一个表示时间的字符串。函数会尝试将字符串转为表示该日期的毫秒值。
日期格式:
- “月/日/年”,5/23/2021
- “月名 日,年”, “May 23, 2021”
- “周几 月名 日 年 时:分:秒 时区”, ‘Tue May 23 2021 00:00:00 GMT+0800’;
- “YYYY-MM-DDTHH:mm:ss.sssZ”, “2019-05-23T00:00:00” (只适用兼容ES5)
如果要创建一个 2021年5月1日 的日期对象
let date = new Date(Date.parse('May 1, 2021'));
如果给 Date.parse()
的字符串不能解析为正确的日期格式,就会返回NaN。如果直接把表示日期的字符串给 new Date()
构造函数那么就会默认调用 Date.parse()
。
Date.UTC
Date.UTC()
方法也返回日期的毫秒表示,但使用的是跟 Date.parse()
不同的信息。
传入 Date.UTC()
的参数是 (年, 月(0-11) 日(1-31)时(0-23)分 秒 毫秒) 。这些参数中年
和月
是必须的。不提供日默认会按照 1日来计算 剩下的参数都按0计算
let date1 = new Date(Date.UTC(2021, 0));
let date2 = new Date(Date.UTC(2021, 0, 5, 17, 55, 55));
date1的日期是 2021年1月零点
date2的日期是 2021年1月5日下午17时55分55秒
与Date.parse
一样,Date.UTC
也会被隐式调用。但有一个区别:Date.UTC
是本地时间不是GMT时间
ESMAScript还提供了 Date.now()
方法,该方法返回执行日期的毫秒数
日期/时间组件方法
方法 | 说明 |
---|---|
getTime () | 返回日期的毫秒表示(时间戳) |
setTime () | 设置日期的毫秒表示 |
getFullYear() | 返回四位数年数 |
getUTCFullYear() | 返回UTC日期的4位年数 |
getMounth() | 返回日期表示的月份 (0-11)月份从0开始 |
getUTCMouth() | 返回UTC日期的月 (0-11) |
getDate() | 返回日期中的日 (1-31) |
getUTCDate() | 返回UTC日期中的日 (1-31) |
setDate(date) | 设置日期中的日,如果data大于改月天数,则加月 |
setUTCDate(date) | 设置UTC日期中的日 |
getDay() | 返回日期中表示周几的数值(0表示周日,6表示周六) |
getUTCDay() | 返回UTC日期中表示周几的数值 |
getHours() | 返回日期中的时(0-23) |
getUTCHours() | 返回UTC日期中的时(0-23) |
setHours(hours) | 设置日期中时(如果hours大于23则加日) |
setUTCHours(hours) | 设置UTC日期中的时(hours大于23加日) |
getMInutes() | 返回日期中的分(0-59) |
getUTCMinutes() | 返回UTC日期中的分(0-59) |
setMinutes(minutes) | 设置日期中的分 (如果minutes大于59,则加时) |
setUTCMinutes(minutes) | 设置UTC日期中的分 (如果minutes大于59,则加时) |
getSeconds() | 返回日期中的秒(0-59) |
getUTCSeconds() | 返回UTC日期中的秒(0-59) |
setSeconds(seconds) | 设置日期中的秒(如果seconds大于59,则加分) |
setUTCSeconds(seconds) | 设置UTC日期中的秒(如果seconds大于59,则加分) |
getMilliseconds() | 返回日期中的毫秒 |
getUTCMilliseconds | 返回UTC日期中的毫秒 |
setMilliseconds(milliseconds) | 设置日期中的毫秒 |
setUTCMilliseconds(milliseconds) | 设置UTC日期的毫秒 |
getTimezoneOffset() | 返回以分钟计时的UTC与本地时区的偏移量 |