# Date
在 JavaScript 中,使用 Date 表示某个时刻,基于Unix Time Stamp进行计算,即 1970 年 1 月 1 日起经过的毫秒数。
# 构造函数
# 函数直接调用
直接调用Date()
会返回一个表示当前时间的字符串
Date();
// "Wed Jun 10 2020 16:04:07 GMT+0800 (中国标准时间)"
1
2
2
# 通过 new 调用
通过new
去创建一个 Date 对象,主要有四种传参方式:
new Date()
:返回表示当前时间的 Date 对象new Date(timeStamp)
:将 unix 毫秒时间戳作为参数,传入,返回时间戳对应的时刻的 Date 对象new Date(dateString)
:传入表示日期的字符串值,比如2012-12-12 20:12:12
注意
日期的字符串需要能被Date.parse()
方法正确解析,因浏览器实现有差异,不建议使用该方法创建 Date 对象。比如2012-12-12 20:12:12
在 safari 浏览器不能被正确解析,Date.parse()
结果为NaN
。
new Date(year, monthIndex[, day[, hour[, minute[, seconds[, milliseconds]]]]])
:分别提供日期与时间的每一个成员
提示
使用传具体数值方法构造 Date 对象时,如果数值大于可选范围(如月份 为 14,分钟为 70),则会进位。比如:new Date(2020, 13)
和new Date(2021, 1)
表示相同时间。
# 静态属性
Date.prototype
:Date 实例的原型对象Date.length
:7,表示 7 个可选参数
# 静态方法
Date.now()
:unix 毫秒时间戳Date.parse()
:解析一个时间日期字符串,返回解析日期的 unix 毫秒时间戳Date.UTC()
:接受和 Date 构造函数最多参数一样的参数,返回 unix 毫秒时间戳
# 实例方法
# 时间获取
getDate()
:日期(1-31)getDay()
:星期几(0-6)getFullYear()
:年份getHours()
:小时(0-23)getMilliseconds()
:毫秒数(0-999)getMinutes()
:分钟(0-59)getMonth()
:月份(0-11)getSeconds()
:秒(0-59)getTime()
:返回 unix 毫秒时间戳,1970 年 1 月 1 日之前返回负数getTimezoneOffset()
:时区偏差分钟数getUTCDate()
:UTC 日期(1-31)getUTCDay()
:UTC 星期几(0-6)getUTCFullYear()
:UTC 年份getUTCHours()
:UTC 小时(0-23)getUTCMilliseconds()
:UTC 毫秒数(0-999)getUTCMinutes()
:UTC 分钟(0-59)getUTCMonth()
:UTC 月份(0-11)getUTCSeconds()
:UTC 秒(0-59)
# 时间设置
提示
Date 实例在设置日期的时候,如果设置的值不合常理,则改变上一个时间值进行调整,比如setDate(0)
表示将时间推到上个月的最后一天,同理,如果参数为 -1,则为上个月的倒数第二天
以下例子返回均为 unix 毫秒时间戳。
setDate()
:设置日期setFullYear()
:设置日期setHours()
:设置日期setMilliseconds()
:设置日期setMinutes()
:设置日期setMonth()
:设置日期setSeconds()
:设置日期setTime()
:设置日期setUTCDate()
:设置日期setUTCFullYear()
:设置日期setUTCHours()
:设置日期setUTCMilliseconds()
:设置日期setUTCMinutes()
:设置日期setUTCMonth()
:设置日期setUTCSeconds()
:设置日期
# 时间显示
toUTCString()
:UTC 时区的时间字符串,格式为Www, dd Mmm yyyy hh:mm:ss GMT
toISOString()
:符合 ISO 8601 Extended Format 格式的字符串,格式为YYYY-MM-DDTHH:mm:ss.sssZ
,时区总是为 UTCtoJSON()
:返回toISOString()
结果,在使用JSON.stringify()
格式化 Date 对象的时候调用toLocalString()
:重写Object.prototype.toLocalString()
,返回日期时间字符串,格式与系统设置相关toLocalDateString()
:日期字符串,格式与系统设置相关toLocalTimeString()
:时间字符串,格式与系统设置有关toString()
:重写Object.prototype.toString()
,返回时间字符串toDateString()
:以人类易读的形式返回表示日期部分的字符串,包括年、月、日、星期toTimeString()
:以人类易读的形式返回表示时间部分的字符串valueOf()
:重写Object.prototype.valueOf()
,返回 unix 毫秒时间戳