摘要:JavaScript 中的 Date对象总结
Date对象
Date 对象是 JavaScript 提供的日期和时间的操作接口,直接调用Date()
会返回代表当前时间的字符串
1 | Date() // "Fri Mar 10 2017 10:19:03 GMT+0800 (中国标准时间)" |
静态方法
Date.now 返回当前距离 1970 年 1 月 1 日 00:00:00 UTC 的毫秒数
Date.parse 方法用来解析日期字符串,返回距离 1970 年 1 月 1 日 00:00:00 的毫秒数,解析失败返回 NaN。格式:YYYY-MM-DDTHH:mm:ss.sssZ,Z表示时区
1 | // 以下均可 |
Date.UTC方法可以返回UTC时间(世界标准时间),格式:Date.UTC(year, month[, date[, hrs[, min[, sec[, ms]]]]])
实例
使用new
返回实例对象,如果不带参数就默认为当前时间,带参数则为指定的时间
1 | new Date() // "Fri Mar 10 2017 10:22:58 GMT+0800 (中国标准时间)" |
参数类型
1.接收一个整数作为参数(从 1970 年 1 月 1 日 00:00:00 UTC 开始计算的毫秒数),当参数是一个负数时,表示 1970 年 1 月 1 日之前的时间
1 | new Date(1489100000000) // "Fri Mar 10 2017 06:53:20 GMT+0800 (中国标准时间)" |
2.接受一个日期字符串作为参数,返回所对应的时间。日期字符串的完整格式:month day, year hours:minutes:second,如果省略了小时、分钟或秒数,这些值会被设为0。其他格式的日期字符串,也可以被解析(同Date.parse)。只要是 YYYY-MM-DD 形式的字符串,采用格林尼治时区作为计时标准
1 | new Date('March 10, 2017 10') // "Fri Mar 10 2017 00:00:00 GMT+0800 (中国标准时间)" |
3.接受多个整数作为参数,依次表示年、月、日、小时、分钟、秒和毫秒。最少需要提供两个参数(年和月),其他默认为零。参数使用负数,表示扣去的时间
year:四位年份,如果写成两位数,则加上1900
month:表示月份,0表示一月,11表示12月
date:表示日期,1到31
hour:表示小时,0到23
minute:表示分钟,0到59
second:表示秒钟,0到59
ms:表示毫秒,0到999
1 | new Date(2017, 2) // "Wed Mar 01 2017 00:00:00 GMT+0800 (中国标准时间)" |
日期运算
两个 Date 对象相减,返回相差的毫秒数,相加则为两个字符串拼接
1 | var date1 = new Date(2017, 2, 10, 10); |
实例方法
valueOf 方法返回实例对象距离 1970 年 1 月 1 日 00:00:00 UTC 对应的毫秒数,同于 getTime 方法
to类方法:改变显示格式
1.toString 方法返回一个完整的日期字符串。它是默认的调用方法,所以如果直接读取Date对象实例,就相当于调用这个方法
2.toUTCString 方法返回对应的UTC时间,也就是比北京时间晚8个小时
3.toISOString 方法返回对应时间的 ISO8601 写法
4.toJSON 方法返回一个符合 JSON 格式的 ISO 格式的日期字符串,与 toISOString 方法的返回结果完全相同
5.toDateString 方法返回日期字符串
6.toTimeString 方法返回时间字符串
7.toLocaleDateString 方法返回一个字符串,代表日期的当地写法
8.toLocaleTimeString 方法返回一个字符串,代表时间的当地写法
get类方法:获取实例对象某个方面的值
1.getTime:返回距离 1970 年 1 月 1 日 00:00:0 的毫秒数,等同于 valueOf 方法
2.getDate:返回实例对象对应每个月的几号(从1开始)
3.getDay:返回星期几,星期日为 0,星期六为 6
4.getYear:返回距离 1900 的年数
5.getFullYear:返回四位的年份
6.getMonth:返回月份(0-11)
7.getHours:返回小时(0-23)
8.getMilliseconds:返回毫秒(0-999)
9.getMinutes:返回分钟(0-59)
10.getSeconds:返回秒(0-59)
11.getTimezoneOffset:返回当前时间与 UTC 的时区差异,以分钟表示,返回结果考虑到了夏令时因素
UTC版本
getUTCDate
getUTCFullYear
getUTCMonth
getUTCDay
getUTCHours
getUTCMinutes
getUTCSeconds
getUTCMilliseconds
set类方法:设置实例对象的各个方面
1.setDate(date):设置实例对象对应的每个月的几号(1-31),返回改变后毫秒时间戳
2.setYear(year): 设置距离1900年的年数
3.setFullYear(year [, month, date]):设置四位年份
4.setHours(hour [, min, sec, ms]):设置小时(0-23)
5.setMilliseconds():设置毫秒(0-999)
6.setMinutes(min [, sec, ms]):设置分钟(0-59)
7.setMonth(month [, date]):设置月份(0-11)
8.setSeconds(sec [, ms]):设置秒(0-59)
9.setTime(milliseconds):设置毫秒时间戳
set类方法和get类方法,可以结合使用,得到相对时间
1 | var d = new Date(); |
UTC版本
setUTCDate
setUTCFullYear
setUTCHours
setUTCMilliseconds
setUTCMinutes
setUTCMonth
setUTCSeconds