• step by step教你常用JS方法封装(二)-时间方法


    本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342.html

    手把手教你常用JS方法封装(二)-时间方法

    常用JS封装方法传预告:

    • 项目常用JS方法封装(三) [ 字符串相关处理 ]
    • 项目常用JS方法封装(四) [ 数组相关处理 ]

    使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!

    001.时间戳转化成YMD格式

    let date = Date.parse(new Date()) //  获取当前时间戳(毫秒)  
      
    /*  
    *   timestamp 当前时间戳,毫秒  
    *   formats 时间格式,包括:  
    *               1. Y-m-d  
    *               2. Y-m-d H:i:s  
    *               3. Y年m月d日  
    *               4. Y年m月d日 H时i分s秒  
    */  
      
    dateFormat = (timestamp, formats) => {  
      formats = formats || 'Y-m-d';  
      let zero = function (value) {  
        if (value < 10) {  
          return '0' + value;  
        }  
        return value;  
      };  
      let myDate = timestamp ? new Date(timestamp) : new Date();  
      let year = myDate.getFullYear();  
      let month = zero(myDate.getMonth() + 1);  
      let day = zero(myDate.getDate());  
      let hour = zero(myDate.getHours());  
      let minite = zero(myDate.getMinutes());  
      let second = zero(myDate.getSeconds());  
      
      return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {  
        return ({  
          Y: year,  
          m: month,  
          d: day,  
          H: hour,  
          i: minite,  
          s: second  
        })[matches];  
      });  
    };  
      
    console.log(dateFormat(date,'Y-m-d'));  
    复制代码
    

    002.年

    let date = Date.parse(new Date()) //  获取当前时间戳(毫秒)  
      
    dateY = time =>{  
      let newDate = new Date(time);  
      let {y}={y:newDate.getFullYear()};  
      return `${y}`;  
    }  
      
    console.log(dateY(date));  
    复制代码
    

    003.年月

    let date = Date.parse(new Date()) //  获取当前时间戳(毫秒)  
      
    dateYM = time => {  
      let newDate = new Date(time);  
      let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };  
      return `${y}-${m}`;  
    }  
      
    console.log(dateYM(date));  
    复制代码
    

    004.年月日

    可根据自己需求,自己添加或删除相应的时间

    let date = Date.parse(new Date()) //  获取当前时间戳(毫秒)  
      
    dateymd = time => {  
      let newDate = new Date(time);  
      let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };  
      return `${y}-${m}-${d}`;  
    }  
      
    console.log(dateymd2(date));  
    复制代码
    

    005.年月日时分秒

    let date = Date.parse(new Date()) //  获取当前时间戳(毫秒)  
      
    dateTime = time => {  
      let newDate = new Date(time);  
      let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };  
      return `${y}-${M}-${d}  ${h}:${m}:${s}`;  
    }  
      
    console.log(dateTime(date));  
    复制代码
    

    006.计算时间N之前

    time_filter = time => {  
      time -= 0;  
      let difTime = new Date().getTime() - time;  
      let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };  
      let msg = "";  
      if (m < 1) {  
        msg = `${s}秒前`  
      } else if (m >= 1 && h < 1) {  
        msg = `${m}分钟前`;  
      } else if (h >= 1 && h <= 24) {  
        msg = `${h}小时前`;  
      } else if (h > 24) {  
        h = parseInt(h / 24)  
        msg = `${h}天前`;  
      }  
      return msg;  
    }  
      
    //输入一个时间戳,能计算出来是多长时间之前  
    console.log(time_filter(1584009520000));  //3分钟前  
    复制代码
    

    007.获取上周本周下周时间

    getDate = n => {  
      let now = new Date();  
      let year = now.getFullYear();  
      let month = now.getMonth() + 1;  
      let date = now.getDate();  
      let day = now.getDay();  
      if (day !== 0) {  
        n = n + (day - 1);  
      } else {  
        n = n + day;  
      }  
      if (day) {  
        if (month > 1) {  
          month = month;  
        } else {  
          year = year - 1;  
          month = 12;  
        }  
      }  
      now.setDate(now.getDate() - n);  
      year = now.getFullYear();  
      month = now.getMonth() + 1;  
      date = now.getDate();  
      let s =  
        year +  
        "-" +  
        (month < 10 ? "0" + month : month) +  
        "-" +  
        (date < 10 ? "0" + date : date);  
      return s;  
    }  
      
    /***参数都是以周一为基准的***/  
    //上周的开始时间  
    // console.log(getDate(7));  
    //上周的结束时间  
    // console.log(getDate(1));  
    //本周的开始时间  
    // console.log(getDate(0));  
    //本周的结束时间  
    // console.log(getDate(-6));  
    //下周的开始时间  
    // console.log(getDate(-7));  
    //下周结束时间  
    // console.log(getDate(-13));  
    复制代码
    

    008.获取当前时间(年月日)

    getNowDate = () => {  
      let nowdate = new Date();  
      let y = nowdate.getFullYear();  
      let m = nowdate.getMonth() + 1;  
      let d = nowdate.getDate();  
      return y + "-" + m + "-" + d;  
    }  
    复制代码
    

    009.当前的时间(年月日时分秒)

    getDateTime = () => {  
      let date = new Date();  
      year = date.getFullYear();  
      month = date.getMonth() + 1;  
      day = date.getDate();  
      hour = date.getHours() + 1;  
      minute = date.getMinutes();  
      second = date.getSeconds();  
      month = checkTime(month);  
      day = checkTime(day);  
      hour = checkTime(hour);  
      minute = checkTime(minute);  
      second = checkTime(second);  
      function checkTime(i) {  
        if (i < 10) {  
          i = "0" + i;  
        }  
        return i;  
      }  
      return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"  
    }  
      
    console.log(getDateTime());  
    复制代码
    

    010.倒计时(开始结束重置,自定义时间)

    以下代码写到HTML的body中

    <span id="clock">00:01:00:00</span>  
    <input id="start" type="button" value="开始" onclick="run()">  
    <input id="end" type="button" value="结束" onclick="stop()">  
    <input id="reset" type="button" value="重置" onclick="reset()">  
    <script language="Javascript">  
        var normalelapse = 100;  
        var nextelapse = normalelapse;  
        var counter;  
        var startTime;  
        var start = clock.innerText;  
        var defaultTime = clock.innerText;  
        var finish = "00:00:00:00";  
        var timer = null;  
      
        // 开始运行    
        function run() {  
            start.disabled = true;  
            end.disabled = false;  
            reset.disabled = false;  
            counter = 0;  
            // 初始化开始时间    
            startTime = new Date().valueOf();  
      
            // nextelapse是定时时间, 初始时为100毫秒    
            // 注意setInterval函数: 时间逝去nextelapse(毫秒)后, onTimer才开始执行    
            timer = window.setInterval("onTimer()", nextelapse);  
        }  
      
        // 停止运行    
        function stop() {  
            start.disabled = false;  
            end.disabled = true;  
            reset.disabled = true;  
            window.clearTimeout(timer);  
        }  
        window.onload = function () {  
            end.disabled = true;  
        };  
      
        // 重置时间  
        function reset() {  
            start.disabled = true;  
            end.disabled = false;  
            reset.disabled = false;  
            window.clearTimeout(timer);  
            clock.innerText = defaultTime  
        }  
      
        // 倒计时函数    
        function onTimer() {  
            if (start == finish) {  
                window.clearInterval(timer);  
                alert("时间到了!");  
                return;  
            }  
      
            var hms = new String(start).split(":");  
            var ms = new Number(hms[3]);  
            var s = new Number(hms[2]);  
            var m = new Number(hms[1]);  
            var h = new Number(hms[0]);  
      
            ms -= 10;  
            if (ms < 0) {  
                ms = 90;  
                s -= 1;  
                if (s < 0) {  
                    s = 59;  
                    m -= 1;  
                }  
      
                if (m < 0) {  
                    m = 59;  
                    h -= 1;  
                }  
            }  
      
            var ms = ms < 10 ? ("0" + ms) : ms;  
            var ss = s < 10 ? ("0" + s) : s;  
            var sm = m < 10 ? ("0" + m) : m;  
            var sh = h < 10 ? ("0" + h) : h;  
      
            start = sh + ":" + sm + ":" + ss + ":" + ms;  
            clock.innerText = start;  
      
            // 清除上一次的定时器    
            window.clearInterval(timer);  
      
            // 自校验系统时间得到时间差, 并由此得到下次所启动的新定时器的时间nextelapse    
            counter++;  
            var counterSecs = counter * 100;  
            var elapseSecs = new Date().valueOf() - startTime;  
            var diffSecs = counterSecs - elapseSecs;  
            nextelapse = normalelapse + diffSecs;  
            if (nextelapse < 0) nextelapse = 0;  
            // 启动新的定时器    
            timer = window.setInterval("onTimer()", nextelapse);  
        }    
    </script>  
    复制代码
    

    011.计时器(无开始结束)

    以下代码写到HTML的body中

    <div id="time"></div>  
    <script type="text/javascript">  
        var maxtime = 10 * 60; //   
        function CountDown() {  
            if (maxtime >= 0) {  
                minutes = Math.floor(maxtime / 60);  
                seconds = Math.floor(maxtime % 60);  
                msg = "还有" + minutes + "分" + seconds + "秒";  
                document.all["time"].innerHTML = msg;  
                if (maxtime == 5 * 60) alert("仅剩5分钟");  
                --maxtime;  
            } else {  
                clearInterval(timer);  
                alert("时间到!");  
            }  
        }  
        timer = setInterval("CountDown()", 1000);     
    </script>  
    复制代码
    

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    ```本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6342/
      
    
    ![手把手教你常用JS方法封装(二)-时间方法](http://p3.pstatp.com/large/dfic-imagehandler/22cd14ed-357d-46b3-83ad-4b8dd6e17aa6)
    
     
    
    常用JS封装方法传预告:
    
    *   项目常用JS方法封装(三) [ 字符串相关处理 ]
    *   项目常用JS方法封装(四) [ 数组相关处理 ]
    
    * * *
    
    **使用方法非常简单,只需放到你的 utils.js 工具文件中,直接 export const 加上我的封装方法,在别的文件中使用{方法1,方法2,方法3...}引用后就可以直接使用了!**
    
    001.时间戳转化成YMD格式
    ===============
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    /*

    • timestamp 当前时间戳,毫秒
    • formats 时间格式,包括:
    •           1. Y-m-d  
      
    •           2. Y-m-d H:i:s  
      
    •           3. Y年m月d日  
      
    •           4. Y年m月d日 H时i分s秒  
      

    */

    dateFormat = (timestamp, formats) => {
    formats = formats || 'Y-m-d';
    let zero = function (value) {
    if (value < 10) {
    return '0' + value;
    }
    return value;
    };
    let myDate = timestamp ? new Date(timestamp) : new Date();
    let year = myDate.getFullYear();
    let month = zero(myDate.getMonth() + 1);
    let day = zero(myDate.getDate());
    let hour = zero(myDate.getHours());
    let minite = zero(myDate.getMinutes());
    let second = zero(myDate.getSeconds());

    return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
    return ({
    Y: year,
    m: month,
    d: day,
    H: hour,
    i: minite,
    s: second
    })[matches];
    });
    };

    console.log(dateFormat(date,'Y-m-d'));
    复制代码

    
    002.年
    =====
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateY = time =>{
    let newDate = new Date(time);
    let {y}={y:newDate.getFullYear()};
    return ${y};
    }

    console.log(dateY(date));
    复制代码

    
    003.年月
    ======
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateYM = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m};
    }

    console.log(dateYM(date));
    复制代码

    
    004.年月日
    =======
    
    **可根据自己需求,自己添加或删除相应的时间**
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateymd = time => {
    let newDate = new Date(time);
    let { y, m, d } = { y: newDate.getFullYear(), m: newDate.getMonth() + 1, d: newDate.getDate() };
    return ${y}-${m}-${d};
    }

    console.log(dateymd2(date));
    复制代码

    
    005.年月日时分秒
    ==========
    
    

    let date = Date.parse(new Date()) // 获取当前时间戳(毫秒)

    dateTime = time => {
    let newDate = new Date(time);
    let { y, M, d, h, m, s } = { y: newDate.getFullYear(), M: newDate.getMonth() + 1, d: newDate.getDate(), h: newDate.getHours(), m: newDate.getMinutes(), s: newDate.getSeconds() };
    return ${y}-${M}-${d} ${h}:${m}:${s};
    }

    console.log(dateTime(date));
    复制代码

    
    006.计算时间N之前
    ===========
    
    

    time_filter = time => {
    time -= 0;
    let difTime = new Date().getTime() - time;
    let { h, m, s } = { h: parseInt(difTime / (3600 * 1000)), m: parseInt(difTime / (60 * 1000)), s: parseInt(difTime / 1000) };
    let msg = "";
    if (m < 1) {
    msg = ${s}秒前
    } else if (m >= 1 && h < 1) {
    msg = ${m}分钟前;
    } else if (h >= 1 && h <= 24) {
    msg = ${h}小时前;
    } else if (h > 24) {
    h = parseInt(h / 24)
    msg = ${h}天前;
    }
    return msg;
    }

    //输入一个时间戳,能计算出来是多长时间之前
    console.log(time_filter(1584009520000)); //3分钟前
    复制代码

    
    007.获取上周本周下周时间
    ==============
    
    

    getDate = n => {
    let now = new Date();
    let year = now.getFullYear();
    let month = now.getMonth() + 1;
    let date = now.getDate();
    let day = now.getDay();
    if (day !== 0) {
    n = n + (day - 1);
    } else {
    n = n + day;
    }
    if (day) {
    if (month > 1) {
    month = month;
    } else {
    year = year - 1;
    month = 12;
    }
    }
    now.setDate(now.getDate() - n);
    year = now.getFullYear();
    month = now.getMonth() + 1;
    date = now.getDate();
    let s =
    year +
    "-" +
    (month < 10 ? "0" + month : month) +
    "-" +
    (date < 10 ? "0" + date : date);
    return s;
    }

    /参数都是以周一为基准的/
    //上周的开始时间
    // console.log(getDate(7));
    //上周的结束时间
    // console.log(getDate(1));
    //本周的开始时间
    // console.log(getDate(0));
    //本周的结束时间
    // console.log(getDate(-6));
    //下周的开始时间
    // console.log(getDate(-7));
    //下周结束时间
    // console.log(getDate(-13));
    复制代码

    
    008.获取当前时间(年月日)
    ===============
    
    

    getNowDate = () => {
    let nowdate = new Date();
    let y = nowdate.getFullYear();
    let m = nowdate.getMonth() + 1;
    let d = nowdate.getDate();
    return y + "-" + m + "-" + d;
    }
    复制代码

    
    009.当前的时间(年月日时分秒)
    =================
    
    

    getDateTime = () => {
    let date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours() + 1;
    minute = date.getMinutes();
    second = date.getSeconds();
    month = checkTime(month);
    day = checkTime(day);
    hour = checkTime(hour);
    minute = checkTime(minute);
    second = checkTime(second);
    function checkTime(i) {
    if (i < 10) {
    i = "0" + i;
    }
    return i;
    }
    return "" + year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒"
    }

    console.log(getDateTime());
    复制代码

    
    010.倒计时(开始结束重置,自定义时间)
    =====================
    
    **以下代码写到HTML的body中**
    
    

    00:01:00:00


    复制代码

    
    011.计时器(无开始结束)
    ==============
    
    **以下代码写到HTML的body中**
    
    
    复制代码 ```

    012.获取最近一周(月),下一周(月)日期范围

    使用时要注意函数之间的相互引用和this指向问题

    /*  
     * @param dateNow :Date类  
     * @param intervalDays :间隔天数  
     * @param bolPastTime  :Boolean,判断在参数date之前,还是之后,  
     */  
    getDateRange = (dateNow, intervalDays, bolPastTime) => {  
        let oneDayTime = 24 * 60 * 60 * 1000;  
        let list = [];  
        let lastDay;  
        if (bolPastTime === true) {  
            lastDay = new Date(dateNow.getTime() - intervalDays * oneDayTime);  
            list.push(formateDate(lastDay));  
            list.push(formateDate(dateNow));  
        } else {  
            lastDay = new Date(dateNow.getTime() + intervalDays * oneDayTime);  
            list.push(formateDate(dateNow));  
            list.push(formateDate(lastDay));  
        }  
        return list;  
    }  
    function formateDate (time) {  
        let year = time.getFullYear()  
        let month = time.getMonth() + 1  
        let day = time.getDate()  
        if (month < 10) {  
            month = '0' + month  
        }  
        if (day < 10) {  
            day = '0' + day  
        }  
        return year + '-' + month + '-' + day + ''  
    }  
      
    var date = new Date();  
    var list = getDateRange(date, 6, true)  
    console.log("获取近一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, true)  
    console.log("获取近一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 0, true)  
    console.log("获取今天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 1, true)  
    console.log("获取昨天日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[0]);  
      
    var list = getDateRange(date, 6, false)  
    console.log("获取下一周日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    var list = getDateRange(date, 30, false)  
    console.log("获取下一个月日期范围:
    开始日期:" + list[0] + ";结束日期:" + list[1]);  
      
    /*  
    获取近一周日期范围:  
    开始日期:2019-12-04;结束日期:2019-12-10  
      
    获取近一个月日期范围:  
    开始日期:2019-11-10;结束日期:2019-12-10  
      
    获取今天日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-10  
      
    获取昨天日期范围:  
    开始日期:2019-12-09;结束日期:2019-12-09  
      
    获取下一周日期范围:  
    开始日期:2019-12-10;结束日期:2019-12-16  
      
    获取下一个月日期范围:  
    开始日期:2019-12-10;结束日期:2020-01-09  
    */  
    复制代码
    

    013.字符替换(时间格式)

    /*  
    *   str 表示将要替换的字符串  
    *   l 表示你将要替换的字符  
    *   r 表示你想要替换的字符  
    */  
    transFormat = (str, l, r) => {  
        let reg = new RegExp(l, 'g') // g表示全部替换,默认替换第一个  
        str = str.replace(reg, r)  
        return str  
    }  
      
    console.log(transFormat('2019-12-13', '-', '/')); // 2019/12/13  
    console.log(transFormat('2019-12-13', '-', '')); // 20191213  
    复制代码
    

    014.时间补零

    如果获取的时间是一位数,则补一个0

    Appendzero = obj => {  
        if (obj < 10 && obj.length < 2) return "0" + obj;  
        else return obj;  
    }  
    复制代码
    

    015.获取当前时间半小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    有可能我们在使用时间数据时,需要使用到的时间必须是两位数,这时候,我们只需要使用上面的时间补零方法,就可以完美的解决了,如下:

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = Appendzero(date.getHours())  
      let mm = Appendzero(date.getMinutes())  
      let ss = Appendzero(date.getSeconds())  
      return hh + ':' + mm + ':' + ss  
    }  
      
    function Appendzero(obj) {  
      if (obj < 10) return "0" + obj;  
      else return obj;  
    }  
    复制代码
    

    下面紧接着的这两种方法类似!!!

    016.获取当前时间1小时之前时间

    getOneHour = () => {  
      let date = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    017.获取当前时间12小时之前时间

    getHalfHour = () => {  
      let date = new Date(new Date().getTime() - 30 * 60 * 1000);  
      let hh = date.getHours()  
      let mm = date.getMinutes()  
      let ss = date.getSeconds()  
      return hh + ':' + mm + ':' + ss  
    }  
    复制代码
    

    018.数字前补零

    /*  
    *   num为你想要进行填充的数字  
    *   length为你想要的数字长度  
    */  
      
    //迭代方式实现  
    padding1=(num, length)=> {  
      for(let len = (num + "").length; len < length; len = num.length) {  
          num = "0" + num;              
      }  
      return num;  
    }  
      
    //递归方式实现  
    padding2=(num, length) =>{  
      if((num + "").length >= length) {  
          return num;  
      }  
      return padding2("0" + num, length)  
    }  
      
    //转为小数  
    padding3=(num, length)=> {  
      let decimal = num / Math.pow(10, length);  
      //toFixed指定保留几位小数  
      decimal = decimal.toFixed(length) + "";  
      return decimal.substr(decimal.indexOf(".")+1);  
    }  
      
    //填充截取法  
    padding4=(num, length)=> {  
      //这里用slice和substr均可  
      return (Array(length).join("0") + num).slice(-length);  
    }  
      
    //填充截取法  
    padding5=(num, length)=> {  
      let len = (num + "").length;  
      let diff = length+1 - len;  
      if(diff > 0) {  
          return Array(diff).join("0") + num;  
      }  
      return num;  
    }  
    复制代码
    

    019.UTC转换标准时间

    utcToNorm = utcTime => {  
      // 转为正常的时间格式 年-月-日 时:分:秒  
      let T_pos = utcTime.indexOf('T');  
      let Z_pos = utcTime.indexOf('Z');  
      let year_month_day = utcTime.substr(0, T_pos);  
      let hour_minute_second = utcTime.substr(T_pos + 1, Z_pos - T_pos - 1);  
      let newTime = year_month_day + " " + hour_minute_second;  
      // 处理成为时间戳  
      timeStamp = new Date(Date.parse(newTime));  
      timeStamp = timeStamp.getTime();  
      timeStamp = timeStamp / 1000;  
      // 增加8个小时,北京时间比utc时间多八个时区  
      timeStamp = timeStamp + 8 * 60 * 60;  
      // 时间戳转为时间  
      let normTime = new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");  
      return normTime;  
    }  
      
    //  测试数据  
    let date = '2019-12-29T03:14:32.860Z'  
    //  let date = JSON.stringify(new Date())  
    console.log(utcToNorm(date));   // 2019-12-29 11:14:32  
    复制代码
    

    020.计算两个日期之间间隔几天

    /**  
     *  strDateStart 开始时间 (String)  
     *  strDateEnd 结束时间 (String)  
     */  
    intervalDate = (strDateStart,strDateEnd) => {  
        let strSeparator = "-"; //日期分隔符  
        let oDate1;  
        let oDate2;  
        let iDays;  
        oDate1= strDateStart.split(strSeparator);  
        oDate2= strDateEnd.split(strSeparator);  
        let strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);  
        let strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);  
        iDays = parseInt(Math.abs(strDateS - strDateE ) / 1000 / 60 / 60 /24);//把相差的毫秒数转换为天数  
        return iDays ;  
    }  
      
    //  测试数据  
    console.log(intervalDate('2020-1-3','2019-12-28'));   // 6  
    console.log(intervalDate('2020-01-03','2019-12-25'));   // 9  
    复制代码
    

    021.计算两个日期间隔几天(通过时间戳计算)

    /**  
     *  startTime 开始时间 (时间戳-毫秒)  
     *  endTime 结束时间 (时间戳-毫秒)  
     */  
      
    intervalTimeStamp = (startTime,endTime) => {  
      let stime = new Date(startTime).getTime();  
      let etime = new Date(endTime).getTime();  
      let intervalTime = etime - stime;   
      let intervalDay=Math.floor(intervalTime/(24*3600*1000));  
      let interval = intervalDay;  
      return interval;  
    }  
      
    //  测试数据  
    console.log(intervalTimeStamp(1577808000000,1577980800000));  // 2  
    复制代码
    

    022.标准时间转时间戳

    let date = new Date('2020-03-12 18:00:00');  
      
    // 有三种方式转化  
    let time1 = date.getTime();  
    let time2 = date.valueOf();  
    let time3 = Date.parse(date);  
      
    console.log(time1); //  1584007200000  
    console.log(time2); //  1584007200000  
    console.log(time3); //  1584007200000
    
  • 相关阅读:
    python变量和作用域
    模块
    装饰器
    转git取消commit
    RTP
    ffmpeg编译
    win7开启wifi
    LIVE555
    【FFmpeg】ffplay播放rtsp视频流花屏问题
    Windows下编译SDL
  • 原文地址:https://www.cnblogs.com/lihanlin/p/12571883.html
Copyright © 2020-2023  润新知