Date对象

仅个人学习的一些要点,欢迎指正,谢谢!参考资料

参数

作为普通函数调用,即使有参数,仍返回当时时间

作为构造函数是,可接受多种参数

  • new Date(milliseconds)

  • new Date(datestring) //datestring能被Date.parse()解析

  • new Date(year, month [, day, hours, minutes, seconds, ms])//仅提供一个参数,将视为毫秒

    >    year:四位年份,如果写成两位数,则加上1900
    >    month:表示月份,0表示一月,11表示12月
    >    date:表示日期,1到31
    >    hour:表示小时,0到23
    >    minute:表示分钟,0到59
    >    second:表示秒钟,0到59
    >    ms:表示毫秒,0到999

日期的运算

类型转换时,Date对象的实例如果转为数值,则等于对应的毫秒数;如果转为字符串,则等于对应的日期字符串。所以,两个日期对象进行减法运算,返回的就是它们间隔的毫秒数;进行加法运算,返回的就是连接后的两个字符串。

        var d1=new Date(2000,0,1);
        var d2=new Date("2000/01/01");
        console.log(typeof(d1+d2));//string
        console.log(d1-d2);//0

Date对象的静态方法

  • Date.now()

    • Date.now方法返回当前距离1970年1月1日 00:00:00 UTC的毫秒数(Unix时间戳乘以1000)

  • Date.UTC()

    • 默认情况下,Date对象返回的都是当前时区的时间。Date.UTC方法可以返回UTC时间(世界标准时间)。该方法接受年、月、日等变量作为参数,返回当前距离1970年1月1日 00:00:00 UTC的毫秒数。

  • Date.parse()

    • Date.parse方法用来解析日期字符串,返回距离1970年1月1日 00:00:00UTC的毫秒数。

Date实例对象的方法

to类:从Date对象返回一个字符串,表示指定的时间。
get类:获取Date对象的日期和时间。
set类:设置Date对象的日期和时间。

  1. to类

    • Date.prototype.toString()

    • Date.prototype.toUTCString()//返回UTC时间,也就是比北京时间晚8个小时

    • Date.prototype.toISOString()//返回UTC时间的ISO写法

    • Date.prototype.toJSON()//返回一个符合JSON格式的ISO格式的日期字符串,与toISOString方法的返回结果完全相同。

    • Date.prototype.toDateString()//返回日期字符串

    • Date.prototype.toTimeString()//返回时间字符串

    • Date.prototype.toLocaleDateString()//返回日期的当地写法

    • Date.prototype.toLocaleTimeString()//返回时间的当地写法

    var d = new Date(2013, 0, 1);
    d
    // "Tue Jan 01 2013 00:00:00 GMT+0800 (CST)"
    d.toString()
    // "Tue Jan 01 2013 00:00:00 GMT+0800 (CST)"
    d.toUTCString()
    // "Mon, 31 Dec 2012 16:00:00 GMT"
    d.toISOString()
    // "2012-12-31T16:00:00.000Z"
    d.toJSON()
    // "2012-12-31T16:00:00.000Z"
    d.toDateString() // "Tue Jan 01 2013"
    d.toTimeString() // "00:00:00 GMT+0800 (CST)"
    d.toLocaleDateString()
    // 中文版浏览器为"2013/1/1"
    d.toLocaleTimeString()
    // 中文版浏览器为"上午12:00:00"
  2. get类

    getTime():返回距离1970年1月1日00:00:00的毫秒数,等同于valueOf方法。
    getDate():返回实例对象对应每个月的几号(从1开始)。
    getDay():返回星期几,星期日为0,星期一为1,以此类推。
    getYear():返回距离1900的年数。
    getFullYear():返回四位的年份。
    getMonth():返回月份(0表示1月,11表示12月)。
    getHours():返回小时(0-23)。
    getMilliseconds():返回毫秒(0-999)。
    getMinutes():返回分钟(0-59)。
    getSeconds():返回秒(0-59)。
    getTimezoneOffset():返回当前时间与UTC的时区差异,以分钟表示,返回结果考虑到了夏令时因素。

    Date对象还提供了这些方法对应的UTC版本,用来返回UTC时间。

    getUTCDate()
    getUTCFullYear()
    getUTCMonth()
    getUTCDay()
    getUTCHours()
    getUTCMinutes()
    getUTCSeconds()
    getUTCMilliseconds()

  3. set类

    setDate(date):设置实例对象对应的每个月的几号(1-31),返回改变后毫秒时间戳。
    setYear(year): 设置距离1900年的年数。
    setFullYear(year [, month, date]):设置四位年份。
    setHours(hour [, min, sec, ms]):设置小时(0-23)。
    setMilliseconds():设置毫秒(0-999)。
    setMinutes(min [, sec, ms]):设置分钟(0-59)。
    setMonth(month [, date]):设置月份(0-11)。
    setSeconds(sec [, ms]):设置秒(0-59)。
    setTime(milliseconds):设置毫秒时间戳。
    setUTCDate()
    setUTCFullYear()
    setUTCHours()
    setUTCMilliseconds()
    setUTCMinutes()
    setUTCMonth()
    setUTCSeconds()

  4. Date.prototype.valueOf()

    valueOf方法返回实例对象距离1970年1月1日00:00:00 UTC对应的毫秒数,该方法等同于getTime方法。
    

问题

Date.UTC(1970,8,9)
//21686400000 
Date.parse("1970-09-09")
//21686400000
Date.parse("1970-9-9")
//21657600000
Date.parse("1970/09/09")
//21657600000

Date.UTC()以格林尼治标准时间为参照,Date.parse()以本地时间为参照

注意,在ES5之中,如果日期采用连词线(-)格式分隔,且具有前导0,JavaScript会认为这是一个ISO格式的日期字符串,导致返回的时间是以UTC时区计算的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值