令人头疼的 Date

189 阅读2分钟

ECMA Script 中的 Date 类型,是基于 java.util.Date 类基础上构建的。为此,Date 类型使用自 UTC(国际协调时间)1970年1月1日午夜开始经过的毫秒数来保存日期。

1 new Date()

  • 不传参,自动获取当前的日期和时间。
  • 想获取特定的日期时间,则必须传入表示该日期的毫秒数(从1970-1-1凌晨开始的毫秒数)。

为了简化上述步骤,ECMAScript 提供了以下方法:

  1. Date.parse(表示日期的字符串参数):根据参数返回相应的日期的毫秒数,如果不能表示日期返回 NaN。<直接将日期传给 Date 构造函数,也会在后台调用 Date.parse()>。
    即: new Date(Date.parse('2020-2-2')) 等价于 new Date('2020-2-2')
  2. Date.UTC(年!,月!<0-11>,日?<1-31>,时?<0-23>,分?<0-60>,秒?<0-60>):非必填参数默认为 0。
  3. Date.now():返回调用该方法时的日期和时间的毫秒数,有浏览器兼容性问题
  4. +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()