JS封装时间戳转换

559 阅读1分钟

一、前言

  • 传入两个参数,分别是转换类型和时间戳
  • 两个参数都为可选参数
  • 对参数时间戳或当前时间戳进行年月日时分秒的转换
  • 对转换后的年月日时分秒进行数字补零
  • 按照类型组合时间,可按需求灵活变通

二、代码注释详解

 function convertDate(type, date) {
        //如果有传入时间戳为秒级时间戳,则转换为毫秒级时间戳
        if (date && (date + '').length == 10) {
            date = date * 1000
        }
        //如果有传入时间戳参数,则使用参数,否则使用当前时间
        let date1 = date ? new Date(date) : new Date();
        //转换年
        let y = date1.getFullYear();
        //转换月,需要自身+1
        let M = date1.getMonth() + 1;
        //转换日
        let d = date1.getDate();
        //转换时
        let HH = date1.getHours();
        //转换分
        let mm = date1.getMinutes();
        //转换秒
        let ss = date1.getSeconds();
        //数字补零
        M = M > 9 ? M : '0' + M;
        d = d > 9 ? d : '0' + d;
        HH = HH > 9 ? HH : '0' + HH;
        mm = mm > 9 ? mm : '0' + mm;
        ss = ss > 9 ? ss : '0' + ss;
        //按照标识参数组合时间排列,此处不局限于这几种,可按具体需求任意修改
        if (type == 'YYYY-MM-dd') {
            return `${y}-${M}-${d}`;
        } else if (type == 'YYYY-MM-dd HH:MM:SS') {
            return `${y}-${M}-${d} ${HH}:${mm}:${ss}`;
        } else {
            return `${y}${M}${d}${HH}:${mm}:${ss}`;
        }
    }
    // 第一个参数为自定义类型标识,第二个参数为时间戳或可转换的时间类型
    console.log(getCurrentDate(),'不传参'); //不传参
    console.log(getCurrentDate('YYYY-MM-dd HH:MM:SS'); //只传类型
    console.log(getCurrentDate('YYYY-MM-dd HH:MM:SS', 1593563123);  //指定时间戳转换