ECMA Script 中的 Date 类型,是基于 java.util.Date 类基础上构建的。为此,Date 类型使用自 UTC(国际协调时间)1970年1月1日午夜开始经过的毫秒数来保存日期。
1 new Date()
- 不传参,自动获取当前的日期和时间。
- 想获取特定的日期时间,则必须传入表示该日期的毫秒数(从1970-1-1凌晨开始的毫秒数)。
为了简化上述步骤,ECMAScript 提供了以下方法:
- Date.parse(表示日期的字符串参数):根据参数返回相应的日期的毫秒数,如果不能表示日期返回 NaN。<直接将日期传给 Date 构造函数,也会在后台调用 Date.parse()>。
即: new Date(Date.parse('2020-2-2')) 等价于 new Date('2020-2-2') - Date.UTC(年!,月!<0-11>,日?<1-31>,时?<0-23>,分?<0-60>,秒?<0-60>):非必填参数默认为 0。
- Date.now():返回调用该方法时的日期和时间的毫秒数,有浏览器兼容性问题
- +new Date():作用同3
Date 类型重写了 toLocalString()、tostring()、valueOf() 方法
- toLocalString():会按照浏览器中设置的地区相应的格式返回日期和时间,但不包含时区
- tostring():会返回带时区信息的日期和时间
- valueOf():不返回时间,而是返回日期的毫秒
2 日期(Date)格式化方法
- toDateString():以特定于实现的格式显示星期几、月、日和年
- toTimeString():以特定于实现的格式显示时分秒和时区
- toLocalDateString():以特定于地区的格式显示星期几、月、日和年
- toLocalTimeString():以特定于实现的格式显示时分秒
- toUTCString():以特定于实现的格式完整的UTC日期
与 toLocalString()、toString() 一样,以上方法的输出因浏览器而异。
3 日期/时间组件方法
| 方法 | 说明 |
|---|---|
| **getTime() ** | 返回表示日期的毫秒数;与valueOf() 方法返回的值相同 |
| setTime() | 以毫秒数设置日期,会改变整个日期 |
| getFullYear() | 取的四位数的年份 |
| getUTCFullYear() | 返回 UTC 日期的四位数年份 |
| setFullYear() | 设置日期的年份,传入的参数必须是4位数字 |
| setUTCFullYear() | 设置UTC日期的年份,参数必须是4为数字 |
| getMonth() | 返回日期中的月份,0为1月,11为12月 |
| getUTCMonth() | 返回UTC日期中的月份,0为1月,11为12月 |
| setMonth() | |
| setUTCMonth() | |
| getDate() | 返回日期月份中的天数(1到31) |
| getUTCDate() | |
| setDate() | |
| setUTCDate() | |
| getDay() | 返回日期中的星期的星期几(0代表周日,6表示周六) |
| getUTCDay() | |
| getHours() | 返回日期中的小时数(0到23) |
| getUTCHours() | |
| setHours() | |
| setUTCHours() | |
| getMinutes() | 返回日期中的分钟 |
| getUTCMinutes() | |
| setMinutes() | |
| setUTCMinutes() | |
| getSecond() | 返回日期中的秒数(0到59) |
| getUTCSecond() | |
| setSecond() | |
| setUTCSecond() | |
| getMilliseconds() | 返回日期中的毫秒数 |
| getUTCMilliseconds() | |
| setMilliseconds() |