美文网首页
JavaScript--Date

JavaScript--Date

作者: 蒜泥捣莓 | 来源:发表于2022-08-02 19:25 被阅读0次

    一、Date的概述

    在JavaScript中,Date类型是用来保存日期的,它能精确到1970年1月1日之前或之后的285616年。

    二、Date的声明

    使用new关键字声明

    要创建一个日期对象,使用new操作符和Date构造函数即可:

    let now = new Date();
    

    在调用Date构造函数而不传递参数时,新创建的对象自动获得当前日期和时间。

    如果要根据特定的日期和时间创建日期对象,必须传入表示该日期的毫秒数(即从UTC时间1970年1月1日起至该日期止经过的 毫秒数)。

    let date = new Date(123456) //一个参数毫秒值 将这个毫秒值去加上对应的1970.1.1 0:0:0
    let date = new Date('2000/1/1 00:00:00') //指定一个字符串 来指定对应的时间 规定格式
    let date = new Date(2000,10,5,12,15,15) //年 月 日 时 分 秒 
    

    注意:如果给Date构造函数传入的是其他格式,也会在后台调Date.parse(),将其转换成毫秒数。

    三、Date的方法

    1、get类方法

    Date对象提供了一些获取日期和时间的方法:

    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的时区差异,以分钟表示,返回结果考虑到了夏令时因素。
    

    上面这些方法返回的都是正数,不同值返回的范围不一样:

    分钟和秒:0 到 59 
    小时:0 到 23 
    星期:0(星期天)到 6(星期六) 
    日期:1 到 31 月份:0(一月)到 11(十二月) 
    年份:距离1900年的年数
    

    上面这些get类方法返回的都是当前时区的时间,Date对象还提供了这些方法对应的UTC版本,用来返回UTC时间。

    getUTCDate() 
    getUTCFullYear() 
    getUTCMonth() 
    getUTCDay() 
    getUTCHours() 
    getUTCMinutes() 
    getUTCSeconds() 
    getUTCMilliseconds()
    
    2、set类方法

    Date对象提供了一些设置日期和时间的方法:

    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):设置毫秒时间戳。
    

    注意:月份都是从0开始的。

    set类方法的参数都会自动折算。下面以setDate为例,如果参数超过当月的最大天数,则向下一个月顺延,如果参数是负数, 表示从上个月的最后一天开始减去的天数。

    setDate()
    setDate()传入特殊值时:
    1)当传入0时,表示为上一个月的最后一天;
    2)当传入负数时,表示上一个月最后一天之前的第几天(比如-1表示上一个月最后一天之前的一天) 。
    3)当传入32时,如果当月有31天,32表示下个月的第一天;如果当月有30天,32表示为下一个月的第二天。

    //传入32获取当月天数:
    let now = new Date(); 
    console.log(now); 
    now.setDate(32); 
    console.log(now); 
    let aMontthDay = 32 - now.getDate(); 
    console.log(aMonthDay); 
    // Fri Nov 18 2016 13:13:03 GMT+0800 (中国标准时间) 
    // Fri Dec 02 2016 13:13:03 GMT+0800 (中国标准时间) 
    // 30
    

    set类方法也有对应的设置UTC时间的方法:

    setUTCDate() 
    setUTCFullYear() 
    setUTCHours() 
    setUTCMilliseconds() 
    setUTCMinutes() 
    setUTCMonth() 
    setUTCSeconds()
    
    3、其他方法

    Date.now()
    Date.now()返回表示调用这个方法时的日期和时间的毫秒数。

    let times = Date.now(); //1479438986198
    

    我们也可以使用+操作符实现Date.now()的功能:

    let times2 = +new Date(); //1479438986198
    

    toLocaleString()
    Date类型的toLocaleString()方法会按照与浏览器设置的时区相适应的格式返回日期和时间,包含AM或PM,但不包含时区。

    let dateString = new Date(); 
    console.log(dateString.toLocaleString()); 
    // 2016/11/18 下午12:19:47
    

    toString()
    Date类型的toString()返回带有时区信息的日期和时间,其中时间一般以军用时间(即小时的范围是0到23)。

    let dateString = new Date(); 
    console.log(dateString.toString()); 
    // Fri Nov 18 2016 12:19:47 GMT+0800 (中国标准时间)
    

    toDateString()
    toDateString()方法返回格式为星期几、月、日和年的字符串。

    let dateString = new Date(); 
    console.log(dateString.toDateString()); 
    // Fri Nov 18 2016
    

    toTimeString()
    toTimeString()返回格式为时、分、秒和时区的字符串。

    let dateString = new Date(); 
    console.log(dateString.toTimeString()); 
    // 12:30:35 GMT+0800 (中国标准时间)
    

    toLocaleDateString()
    toLocaleDateString()返回格式为星期几、月、日和年的字符串(依照时区的不同,显示的格式也会所有不同)

    var dateString = new Date(); 
    console.log(dateString.toLocaleDateString()); 
    // 2016/11/18
    

    toLocaleTimeString()
    toLocaleTimeString() 返回格式为时、分、秒的字符串。

    let dateString = new Date(); 
    console.log(dateString.toLocaleTimeString()); 
    // 下午12:30:35
    

    toUTCString()
    toUTCString()返回完整的UTC日期。

    var dateString = new Date(); 
    console.log(dateString.toUTCString()); 
    // Fri, 18 Nov 2016 04:30:35 GMT
    

    相关文章

      网友评论

          本文标题:JavaScript--Date

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