JavaScript
的Date
对象是用于处理日期和时间的全局对象,Date
对象基于Unix Time Stamp
,即自1970
年1
月1
日UTC
起经过的毫秒数。
Date()
构造函数能够接受四种形式的参数,分别为没有参数、Unix
时间戳、时间戳字符串、分别提供日期与时间的每一个成员。此外创建一个新Date
对象的唯一方法是通过new
操作符,若将它作为常规函数调用,即不加new
操作符,将返回一个字符串,而非Date
对象。
Unix
时间戳: 一个Unix
时间戳Unix Time Stamp
,它是一个整数值,表示自1970
年1
月1
日00:00:00 UTC-the Unix epoch
以来的毫秒数,忽略了闰秒,请注意大多数Unix
时间戳功能仅精确到最接近的秒。Date.parse()
正确方法识别,即符合IETF-compliant RFC 2822 timestamps
或version of ISO8601
。Date()
返回的 Date
对象中的每一个成员都来自提供的参数,没有提供的成员将使用最小可能值,对日期为1
,其他为0
。Date.UTC(year,month[,date[,hrs[,min[,sec[,ms]]]]])
Date.UTC()
方法接受的参数同日期构造函数接受最多参数时一样,返回从1970-1-1 00:00:00 UTC
到指定日期的的毫秒数。
year
: 1900
年后的某一年份。month
: 0
到11
之间的一个整数,表示月份。date
: 1
到31
之间的一个整数,表示某月当中的第几天。hrs
: 0
到23
之间的一个整数,表示小时。min
: 0
到59
之间的一个整数,表示分钟。sec
: 0
到59
之间的一个整数,表示秒。ms
: 0
到999
之间的一个整数,表示毫秒。Date.now()
Date.now()
方法返回自1970
年1
月1
日00:00:00 (UTC)
到当前时间的毫秒数。
Date.parse(dateString)
Date.parse()
方法解析一个表示某个日期的字符串,该字符串dateString
需要符合RFC2822
或ISO 8601
日期格式的字符串(其他格式也许也支持,但结果可能与预期不符),并返回从1970-1-1 00:00:00 UTC
到该日期对象即该日期对象的UTC
时间的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值例如2015-02-31
,则返回值为NaN
。不推荐在ES5
之前使用Date.parse
方法,因为字符串的解析完全取决于实现。直到至今,不同浏览器在如何解析日期字符串上仍存在许多差异,因此最好还是手动解析日期字符串,在需要适应不同格式时库能起到很大帮助。
dateObj.getDate()
根据本地时间,返回一个指定的日期对象为一个月中的哪一日,范围为从1-31
。
dateObj.getDay()
getDay()
方法根据本地时间,返回一个具体日期中一周的第几天,0
表示星期天。
dateObj.getFullYear()
getFullYear()
方法根据本地时间返回指定日期的年份。
dateObj.getHours()
getHours()
方法根据本地时间,返回一个指定的日期对象的小时。
dateObj.getMilliseconds()
getMilliseconds()
方法,根据本地时间,返回一个指定的日期对象的毫秒数。
dateObj.getMinutes()
getMinutes()
方法根据本地时间,返回一个指定的日期对象的分钟数。
dateObj.getMonth()
根据本地时间,返回一个指定的日期对象的月份,为基于0
的值,0
表示一年中的第一月。
dateObj.getSeconds()
getSeconds()
方法根据本地时间,返回一个指定的日期对象的秒数。
dateObj.getTime()
getTime
方法的返回值一个数值,表示从1970
年1
月1
日0
时0
分0
秒,距离该日期对象所代表时间的毫秒数。
dateObj.getTimezoneOffset()
getTimezoneOffset()
方法返回协调世界时UTC
相对于当前时区的时间差值,单位为分钟。
dateObj.getUTCDate()
getUTCDate()
方法以世界时为标准,返回一个指定的日期对象为一个月中的第几天。
dateObj.getUTCDay()
getUTCDay()
方法以世界时为标准,返回一个指定的日期对象为一星期中的第几天,其中0
代表星期天。
dateObj.getUTCFullYear()
getUTCFullYear()
以世界时为标准,返回一个指定的日期对象的年份。
dateObj.getUTCHours()
getUTCHours()
方法以世界时为标准,返回一个指定的日期对象的小时数。
dateObj.getUTCMilliseconds()
getUTCMilliseconds()
方法以世界时为标准,返回一个指定的日期对象的毫秒数。
dateObj.getUTCMinutes()
getUTCMinutes()
方法以世界时为标准,返回一个指定的日期对象的分钟数。
dateObj.getUTCMonth()
getUTCMonth()
方法以世界时为标准,返回一个指定的日期对象的月份,它是从0
开始计数的,0
代表一年的第一个月。
dateObj.getUTCSeconds()
getUTCSeconds()
方法以世界时为标准,返回一个指定的日期对象的秒数。
dateObj.setDate(dayValue)
setDate()
方法根据本地时间来指定一个日期对象的天数。
dayValue
: 表示一个整数,表示该月的第几天。dateObj.setFullYear(yearValue[, monthValue[, dayValue]])
setFullYear()
方法根据本地时间为一个日期对象设置年份。
yearValue
: 指定年份的整数值,例如1995。monthValue
: 一个0
到11之间的整数值,表示从一月到十二月。dayValue
: 一个1
到31
之间的整数值,表示月份中的第几天,如果指定了dayValue
参数,就必须同时指定monthValue
。dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
setHours()
方法根据本地时间为一个日期对象设置小时数,返回从1970-01-01 00:00:00 UTC
到更新后的日期对象实例所表示时间的毫秒数,在JavaScript 1.3
版本之前只接受一个参数。
hoursValue
: 一个0
到23
的整数,表示小时。minutesValue
: 一个0
到59
的整数,表示分钟。secondsValue
: 一个0
到59
的整数,表示秒数,如果指定了secondsValue
参数,则必须同时指定minutesValue
参数。msValue
: 一个0
到999
的数字,表示微秒数,如果指定了msValue
参数,则必须同时指定minutesValue
和secondsValue
参数。dateObj.setMilliseconds(millisecondsValue)
setMilliseconds()
方法会根据本地时间设置一个日期对象的毫秒数。
millisecondsValue
: 一个0
到999
的数字,表示毫秒数。dateObj.setMinutes(minutesValue[, secondsValue[, msValue]])
setMinutes()
方法根据本地时间为一个日期对象设置分钟数,在JavaScript 1.3
版本之前只接受第一个参数。
minutesValue
: 一个0
到59
的整数,表示分钟数。secondsValue
: 一个0
到59
的整数,表示秒数。如果指定了secondsValue
参数,则必须同时指定minutesValue
参数。msValue
: 一个0
到999
的数字,表示微秒数,如果指定了msValue
参数,则必须同时指定minutesValue
和secondsValue
参数。dateObj.setMonth(monthValue[, dayValue])
setMonth()
方法根据本地时间为一个设置年份的日期对象设置月份,返回从1970-01-01 00:00:00 UTC
到更新后的日期对象实例所表示时间的毫秒数,在JavaScript 1.3
版本之前只接受第一个参数。
monthValue
: 介于0
到11
之间的整数,表示一月到十二月。dayValue
: 从1
到31
之间的整数,表示月份中的第几天,0
为上个月最后一天。dateObj.setSeconds(secondsValue[, msValue])
setSeconds()
方法根据本地时间设置一个日期对象的秒数,在JavaScript 1.3
版本之前只接受第一个参数。
secondsValue
: 一个0
到59
的整数。msValue
: 一个0
到999
的数字,表示微秒数。dateObj.setTime(timeValue)
setTime()
方法以一个表示从1970-1-1 00:00:00 UTC
计时的毫秒数为来为Date
对象设置时间。
timeValue
: 一个整数,表示从1970-1-1 00:00:00 UTC
开始计时的毫秒数。dateObj.setUTCDate(dayValue)
setUTCDate()
方法就是根据全球时间设置特定date
对象的日期。
dayValue
: 一个1-31
的整形数字,用来指定日期。dateObj.setUTCFullYear(yearValue[, monthValue[, dayValue]])
setUTCFullYear()
方法根据世界标准时间为一个具体日期设置年份,在JavaScript 1.3
版本之前只接受第一个参数。
yearValue
: 指定年份整数值,例如1995
。monthValue
: 指定一个0-11
之间的整数值,代表从一月到十二月。dayValue
: 指定一个1-31
之间的整数值,代表月份中的第几天,如果指定了dayValue
参数,那么必须指定monthValue
参数。dateObj.setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
setUTCHours()
方法根据通用时间设置指定日期的小时,并返回从1970
年1
月1
日00:00:00 UTC
到更新后的date
实例所表示的时间的毫秒数。
hoursValue
: 表示小时的整数,取值0
到23
之间。minutesValue
: 表示分钟的整数,取值0
到59
之间。secondsValue
: 表示秒数的整数,取值0
到59
之间,如果指定了该参数,就要同时指定minutesValue
参数。msValue
: 表示毫秒的整数,取值0
到999
之间,如果指定了该参数,就要指定minutesValue
和secondsValue
这两个参数。dateObj.setUTCMilliseconds(millisecondsValue)
setUTCMilliseconds()
方法会根据世界时来设置指定时间的毫秒数。
millisecondsValue
: 0 - 999
之间的数值,代表毫秒数。dateObj.setUTCMinutes(minutesValue[, secondsValue[, msValue]])
setUTCMinutes()
方法会根据世界协调时UTC
来设置指定日期的分钟数,返回从UTC
时间1970
年1
月1
日0
时0
分0
秒至设置后的时间的毫秒数。
minutesValue
: 表示要设置的分钟数,是一个介于0
和59
之间的整数。secondsValue
: 表示要设置的秒数,同样也是一个介于0
和59
之间的整数,如果传入了这个参数,那么必须要传入上一个参数minutesValue
。msValue
: 表示要设置的毫秒数,这是一个介于0
和999
之间的数字,如果传入了这个参数,那么就必须要传入前面两个参数minutesValue
和secondsValue
。dateObj.setUTCMonth(monthValue[, dayValue])
setUTCMonth()
方法根据通用的时间来设置一个准确的月份,返回从UTC
时间1970
年1
月1
日0
时0
分0
秒至设置后的时间的毫秒数。
monthValue
: 一个0-11
的整数,代表1
月到12
月。dayValue
: 一个1-31
的整数,代表一个月的天数。dateObj.setUTCSeconds(secondsValue[, msValue])
setUTCSeconds()
方法为一个依据国际通用时间的特定日期设置秒数,返回从UTC
时间1970
年1
月1
日0
时0
分0
秒至设置后的时间的毫秒数。
secondsValue
: 一个在0
到59
之间的整数,表示秒数。
msValue
: 一个0
到999
之间的数字,代表毫秒数。
dateObj.toDateString()
toDateString()
方法返回一个日期对象日期部分的字符串。
dateObj.toISOString()
toISOString()
方法返回一个ISO
即ISO 8601 Extended Format
格式的字符串YYYY-MM-DDTHH:mm:ss.sssZ
,时区总是UTC
协调世界时,加一个后缀Z
标识。
dateObj.toJSON()
toJSON()
方法返回Date
对象的字符串形式,调用toJSON()
返回一个JSON
格式字符串,使用toISOString()
,表示该日期对象的值,默认情况下,这个方法常用于JSON
序列化Date
对象。
dateObj.toLocaleDateString([locales [, options]])
toLocaleDateString()
方法返回该日期对象日期部分的字符串,该字符串格式因不同语言而不同。新增的参数locales
和options
使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现behavior
,在旧版本浏览器中,locales
和options
参数被忽略,使用的语言环境和返回的字符串格式是各自独立实现的。
dateObj.toLocaleString([locales [, options]])
toLocaleString()
方法返回该日期对象的字符串,该字符串格式因不同语言而不同。新增的参数locales
和options
使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现behavior
。在旧版本浏览器中,locales
和options
参数被忽略,使用的语言环境和返回的字符串格式是各自独立实现的。
dateObj.toLocaleTimeString([locales [, options]])
toLocaleTimeString()
方法返回该日期对象时间部分的字符串,该字符串格式因不同语言而不同。新增的参数locales
和options
使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现behavior
。在旧版本浏览器中,locales
和options
参数被忽略,使用的语言环境和返回的字符串格式是各自独立实现的。
dateObj.toString()
toString()
方法返回一个字符串,表示该Date
对象。
dateObj.toTimeString()
toTimeString()
方法返回一个日期对象时间部分的字符串。
dateObj.toUTCString()
toUTCString()
方法把一个日期转换为一个字符串,使用UTC
时区。
dateObj.valueOf()
valueOf()
方法返回一个Date
对象的原始值。
Date()[Symbol.toPrimitive]()
[@@toPrimitive]()
方法可以转换一个Date
对象到一个原始值。如果hint
是string
或default
,[@@toPrimitive]()
将会调用toString
,如果toString
属性不存在,则调用 valueOf
,如果valueOf
也不存在,则抛出一个TypeError
。如果hint
是number
,[@@toPrimitive]()
会首先尝试valueOf
,若失败再尝试toString
。当期望一个原始值却收到一个对象时,JavaScript
可以自动的调用[@@toPrimitive]()
方法来将一个对象转化成原始值,所以你很少会需要自己调用这个方法。