js 日期格式化

用法 :

//2022-10-06 22:01:09
formatDate("yyyy-MM-dd hh:mm:ss", new Date());

//2022-10-06 22:01:09
dateFormat("yyyy-MM-dd hh:mm:ss", new Date(1665064915000));

函数定义:

//此函数和下面的函数功能一致
function formatDate(fmt, date) { 
     var o = { 
        "M+" : date.getMonth()+1,                 //月份 
        "d+" : date.getDate(),                    //
        "h+" : date.getHours(),                   //小时 
        "m+" : date.getMinutes(),                 //
        "s+" : date.getSeconds(),                 //
        "q+" : Math.floor((date.getMonth()+3)/3), //季度 
        "S"  : date.getMilliseconds()             //毫秒 
    }; 
    if(/(y+)/.test(fmt)) {
            fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length)); 
    }
     for(var k in o) {
        if(new RegExp("("+ k +")").test(fmt)){
             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
         }
     }
    return fmt; 
}

function dateFormat(fmt, date) {
    let ret;
    const opt = {
        "Y+": date.getFullYear().toString(),        //
        "m+": (date.getMonth() + 1).toString(),     //
        "d+": date.getDate().toString(),            //
        "H+": date.getHours().toString(),           //
        "M+": date.getMinutes().toString(),         //
        "S+": date.getSeconds().toString()          //
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}

 

posted on 2022-10-08 19:16  王飞侠  阅读(160)  评论(0编辑  收藏  举报

导航