原生JavaScript日期对象常用方法

425 阅读3分钟

1.创建日期的三种方式

  1. 方式1无参数
        var date = new Date() //返回当前日期和时间, 创建的都是Date对象
        //输出为当前时间信息
        console.log(date) //Sun Jan 02 2022 09:02:12 GMT+0800 (中国标准时间)
        console.log(Date()); //输出一个字符串时间  Sun Jan 02 2022 09:02:12 GMT+0800 (中国标准时间)
        console.log(typeof date) //object
        console.log(typeof Date()); //string
  1. 参数为日期数字字符串
        var date2 = new Date('2022-1-1 00:00:00')
        //输出为该时间的信息
        console.log(date2) //Sat Jan 01 2022 00:00:00 GMT+0800 (中国标准时间)
  1. 参数为距离1970-01-01:8:00:00的毫秒数
        var date3 = new Date(0)
        console.log(date3) //Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
        var date4 = new Date(1000)
        console.log(date4)//Thu Jan 01 1970 08:00:01 GMT+0800 (中国标准时间)

2.日期常用方法

var date5 = new Date('2022-1-1 08:30:10')
        console.log(date5); //Sat Jan 01 2022 08:30:10 GMT+0800 (中国标准时间)
        var Y = date5.getFullYear() //获取该时间的年份
        console.log(Y); //2022
        var M = date5.getMonth() //获取月份 ,0表示1月份,后面以此类推
        console.log(M) //0
        var D = date5.getDate() //获取日
        console.log(D); //1
        var h = date5.getHours() //时
        console.log(h); //8
        var m = date5.getMinutes() //分
        console.log(m); //30
        var s = date5.getSeconds() //秒
        console.log(s); //10
        var d = date5.getDay() //获取星期几
        console.log(d); //6
        var time = date5.getTime() //1970到该时间的毫米数  注: 这个没有getUTCTime()方法, 因为这个值和时区无关
        console.log(time); //1640997010000
        var time2 = Date.now() //1970到此刻时间的毫米数
        console.log(time2); //1641084665299
        // 补充
        var H2 = date5.getUTCHours() //获取世界时间(UTC或GMT)的小时,不写表示使用本地时间
        console.log(H2); //0 
        var mS = date5.getMilliseconds() //获取毫秒数
        console.log(mS);
        var m2 = date5.getTimezoneOffset() //返回该日期的本地表示与UTC表示之间相差的分钟数, 注意返回值依赖于指定日期的夏令时是否有效
        console.log(m2); //-480
        // Date.parse() 解析一个日期及时间的字符串表示, 返回该日期的内部毫秒表示
        console.log(Date.parse('2022 1 1')); //1640966400000 返回1970/1/1 距离该日期时间的毫秒数。
        
         //设置更改时间set方法以上例子里面除了getDay()和getTimezoneOffset()没有set方法, 
        // 其他都是有相应的set方法的, 直接将get替换成set即可用
        date5.setDate(10) //将1号改成了10号
        console.log(date5); //Mon Jan 10 2022 08:30:10 GMT+0800 (中国标准时间)

3. 日期和时间对象的转换

        var date6 = new Date('2021-12-31 08:30:10') 
        console.log(date6.toDateString());//Fri Dec 31 2021  返回一个表示日期部分的字符串, 使用本地时区
        console.log(date6.toISOString()); //2021-12-31T00:30:10.000Z  将Date转字符串, 以ISO-8601标准和以时区为"Z"的UTC时间表示形式
        console.log(date6.toJSON()); //2021-12-31T00:30:10.000Z  将Date对象JSON序列化, 返回值和toISOString()一样
        console.log(date6.toLocaleDateString());//2021/12/31  返回一个表示日期部分的字符串, 使用本地时区, 本地时间格式
        console.log(date6.toLocaleString());//2021/12/31 上午8:30:10  将Date转换为字符串
        console.log(date6.toLocaleTimeString());//上午8:30:10  返回一个表示时间部分的字符串
        console.log(date6.toTimeString());//08:30:10 GMT+0800 (中国标准时间) 返回一个表示时间部分的字符串
        console.log(date6.toUTCString());//Fri, 31 Dec 2021 00:30:10 GMT 用世界时间将Date转换为字符串 
        console.log(date6.valueOf());//1640910610000  将Date转为对应的内部毫秒格式