zoukankan      html  css  js  c++  java
  • js-20170816-Date对象

    1.概念
    Date对象可以作为普通函数直接调用,返回一个代表当前时间的字符串。
    Date();
    // "Wed Aug 16 2017 19:37:37 GMT+0800 (CST)"
    注意,即使带有参数,Date作为普通函数使用时,返回的还是当前时间。
    Date(2000, 1, 1);
    // "Wed Aug 16 2017 19:37:37 GMT+0800 (CST)"
     
     
    2. New Date()
    Date还可以当作构造函数使用。对它使用new命令,会返回一个Date对象的实例。如果不加参数,生成的就是代表当前时间的对象.
    作为构造函数时,Date对象可以接受多种格式的参数。
    (1)new Date(milliseconds)
    Date对象接受从1970年1月1日00:00:00 UTC开始计算的毫秒数作为参数。这意味着如果将Unix时间戳(单位为秒)作为参数,必须将Unix时间戳乘以1000。
    Date构造函数的参数可以是一个负数,表示1970年1月1日之前的时间。
    (2)new Date(datestring)
    Date对象还接受一个日期字符串作为参数,返回所对应的时间.
    日期字符串的完整格式是“month day, year hours:minutes:seconds”,比如“December 25, 1995 13:30:00”。如果省略了小时、分钟或秒数,这些值会被设为0。
    但是,其他格式的日期字符串,也可以被解析。事实上,所有可以被Date.parse()方法解析的日期字符串,都可以当作Date对象的参数。
    注意,在ES5之中,如果日期采用连词线(-)格式分隔,且具有前导0,JavaScript会认为这是一个ISO格式的日期字符串,导致返回的时间是以UTC时区计算的。
    new Date('2014-01-01')
    // Wed Jan 01 2014 08:00:00 GMT+0800 (CST)
     
    new Date('2014-1-1')
    // Wed Jan 01 2014 00:00:00 GMT+0800 (CST)
    但是,ES6改变了这种做法,规定凡是没有指定时区的日期字符串,一律认定用户处于本地时区。
    (3)new Date(year, month [, day, hours, minutes, seconds, ms])
    Date对象还可以接受多个整数作为参数,依次表示年、月、日、小时、分钟、秒和毫秒。如果采用这种格式,最少需要提供两个参数(年和月),其他参数都是可选的,默认等于0。因为如果只使用“年”这一个参数,Date对象会将其解释为毫秒数。
    这些参数如果超出了正常范围,会被自动折算。比如,如果月设为15,就折算为下一年的4月。
    参数还可以使用负数,表示扣去的时间。
     
     
    3.Date对象的静态方法
    3.1 Date.now()
    Date.now方法返回当前距离1970年1月1日 00:00:00 UTC的毫秒数(Unix时间戳乘以1000)。
     
     
    4.Date实例对象的方法
    Date的实例对象,有几十个自己的方法,分为以下三类。
    to类:从Date对象返回一个字符串,表示指定的时间。
    get类:获取Date对象的日期和时间。
    set类:设置Date对象的日期和时间。
    4.1 to类方法
    (1)Date.prototype.toString()
    toString方法返回一个完整的日期字符串。
    var d = new Date(2013, 0, 1);
    d.toString()
    // "Tue Jan 01 2013 00:00:00 GMT+0800 (CST)"
    d
    // "Tue Jan 01 2013 00:00:00 GMT+0800 (CST)"
    因为toString是默认的调用方法,所以如果直接读取Date对象实例,就相当于调用这个方法。
    (2)Date.prototype.toUTCString()
    toUTCString方法返回对应的UTC时间,也就是比北京时间晚8个小时。
    var d = new Date(2013, 0, 1);
     
    d.toUTCString()
    // "Mon, 31 Dec 2012 16:00:00 GMT"
     
    d.toString()
    // "Tue Jan 01 2013 00:00:00 GMT+0800 (CST)"
    (3) Date.prototype.toLocaleDateString()
    toLocaleDateString方法返回一个字符串,代表日期的当地写法。
    var d = new Date(2017, 7, 17);
    d.toLocaleDateString();
    // 中文版浏览器为"2017年8月17日"
    // 英文版浏览器为"2017/8/17"
    4.2 get类方法
    Date对象提供了一系列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的时区差异,以分钟表示,返回结果考虑到了夏令时因素。
    var d = new Date('January 6, 2013');
     
    d.getDate() // 6
    d.getMonth() // 0
    d.getYear() // 113
    d.getFullYear() // 2013
    d.getTimezoneOffset() // -480
    上面代码中,最后一行返回-480,表示UTC比当前时间晚480分钟,即8个小时。
    下面是一个例子,计算本年度还剩下多少天。
    function leftDays() {
    var today = new Date();
    var endYear = new Date(today.getFullYear(), 11, 31, 23, 59, 59, 999);
    var msPerDay = 24 * 60 * 60 * 1000;
    return Math.round((endYear.getTime() - today.getTime()) / msPerDay);
    }
    4.3 Date.prototype.valueOf()
    valueOf方法返回实例对象距离1970年1月1日00:00:00 UTC对应的毫秒数,该方法等同于getTime方法。
    var d = new Date();
     
    d.valueOf() // 1502942893110
    d.getTime() // 1502942893110
     
  • 相关阅读:
    选择省市区的组件
    element ui 合计/table show-summary
    双击放大预览功能/组件
    vue 中获取初始的值
    vue 兄弟组件之间通信
    js数组常用到的方法,及其注意事项
    ps
    最有效的学习方法
    css2
    prettytable:像数据库一样格式化输出内容
  • 原文地址:https://www.cnblogs.com/jialuchun/p/7511466.html
Copyright © 2011-2022 走看看