美文网首页让前端飞程序员我爱编程
【JS基础】JavaScript中Date对象的常用方法

【JS基础】JavaScript中Date对象的常用方法

作者: 虹猫1992 | 来源:发表于2018-12-23 19:12 被阅读16次

    Date 类型使用自 UTCCoordinated Universal Time,国际协调时间)1970 年 1 月 1 日午夜(零时)开始经过的毫秒数来保存日期。

    1. 创建Date对象,使用 new 操作符和 Date 构造函数即可:

    (1)Date 对象自动使用当前的日期和时间作为其初始值

    var date = new Date();
    

    (2)将给定的毫秒数转换为使用的时间,new Date(dateVal)

    • dateVal 必选项。
    • 如果是数字值,dateVal表示指定日期与1970年1月1日午夜间全球标准时间的毫秒数
    • 如果是字符串,则 dateVal 按照 parse 方法中的规则进行解析。
    var date = new Date("2018/04/06 03:23:55");
    var date = new Date(1545548361287);
    

    (3)指定具体的日期,new Date((year,month,date[,hours[,minutes[,seconds[,ms]]]]))

    • year 必选项,完整的年份,比如,1976(而不是 76
    • month 必选项,表示的月份,是011 之间的整数1 月至 12 月)
    • date 必选项,表示日期,是从 131 之间的整数
    • hours 可选项,如果提供了 minutes 则必须给出。表示小时,是从 023 的整数
    • minutes 可选项,如果提供了 seconds 则必须给出。表示分钟,是从 059 的整数
    • seconds 可选项,如果提供了 milliseconds 则必须给出。表示秒钟,是从 059 的整数
    • ms 可选项,表示毫秒,是从 0999 的整数
    var date = new Date(2018, 11, 23, 15, 3, 23);
    

    2. 日期的运算

    类型自动转换时,Date实例如果转为数值,则等于对应的毫秒数;如果转为字符串,则等于对应的日期字符串

    • 两个日期实例对象进行减法运算时,返回的是它们间隔的毫秒数;
    • 进行加法运算时,返回的是两个字符串连接而成的新字符串。
    var d1 = new Date(2018, 0, 1);
    var d2 = new Date(2018, 11, 1);
    
    console.log(d2 - d1); //28857600000
    console.log(d2 + d1); 
    // "Sat Dec 01 2018 00:00:00 GMT+0800 (中国标准时间)Mon Jan 01 2018 00:00:00 GMT+0800 (中国标准时间)"
    

    3. 静态方法:Date.now()

    Date.now()方法返回当前时间距离时间零点(19701100:00:00 UTC)的毫秒数,相当于 Unix 时间戳乘以1000

    Date.now(); // 1545549988630
    

    4. 继承的方法

    (1)valueOf()方法返回实例对象距离时间零点(19701100:00:00 UTC)对应的毫秒数,该方法等同于getTime方法。

    var d = new Date();
    
    d.valueOf() // 1545550458280
    d.getTime() // 1545550458280
    

    (2)toString()方法返回一个完整的日期字符串。因为toString是默认的调用方法,所以如果直接读取Date实例,就相当于调用这个方法。

    var d = new Date(2018, 11, 23);
    
    console.log(d.toString()); // Sun Dec 23 2018 00:00:00 GMT+0800 (中国标准时间)
    console.log(d); // Sun Dec 23 2018 00:00:00 GMT+0800 (中国标准时间)
    

    (3)toLocaleString()返回一个表示该日期对象的字符串,该字符串与系统设置的地区关联。

    var d = new Date(2018, 11, 23);
    
    console.log(d.toLocaleString()); // 2018/12/23 上午12:00:00
    

    5. get 类方法

    Date对象提供了一系列get*方法,用来获取实例对象某个方面的值。

    实例的方法名 作用
    getTime() 返回实例距离1970年1月1日00:00:00的毫秒数,等同于valueOf方法
    getYear() 返回距离1900的年数
    getFullYear() 返回四位的年份
    getMonth() 返回月份(0 ~ 11,0表示1月,11表示12月)
    getDay() 返回星期几,星期日为0,星期一为1,以此类推
    getDate() 返回实例对象对应每个月的几号(从1开始)
    getHours() 返回小时数 (0 ~ 23)
    getMinutes() 返回分钟数 (0 ~ 59)
    getSeconds() 返回秒数 (0 ~ 59)
    getMilliseconds() 返回毫秒数 (0 ~ 999)

    6. set 类方法

    Date对象提供了一系列set*方法,用来设置实例对象的各个方面。

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

    这些方法基本是跟get*方法一一对应的,但是没有setDay方法,因为星期几是计算出来的,而不是设置的

    7. 将日期转换为指定的格式

    // 可以为Date原型添加如下的方法
    Date.prototype.format = function(fmt) { 
         var o = { 
            "M+" : this.getMonth()+1,                 //月份 
            "d+" : this.getDate(),                    //日 
            "h+" : this.getHours(),                   //小时 
            "m+" : this.getMinutes(),                 //分 
            "s+" : this.getSeconds(),                 //秒 
            "q+" : Math.floor((this.getMonth()+3)/3), //季度 
            "S"  : this.getMilliseconds()             //毫秒 
        }; 
        if(/(y+)/.test(fmt)) {
                fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
        }
         for(var k in o) {
            if(new RegExp("("+ k +")").test(fmt)){
                 fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
             }
         }
        return fmt; 
    }     
    
    // 调用
    var time = new Date().format("yyyy-MM-dd hh:mm:ss");
    console.log(time);   
    

    相关文章

      网友评论

        本文标题:【JS基础】JavaScript中Date对象的常用方法

        本文链接:https://www.haomeiwen.com/subject/ibnnkqtx.html