【JS】日期Date如何格式化为年月日yyyy-MM-dd hh:mm:ss

如何将日期Date转换为指定的格式:如 yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd ?

可以为Date原型添加如下的方法:

Date.prototype.format = function(fmt) { 
     var o = { 
        "M+" : this.getMonth()+1,                 //月份 
        "d+" : this.getDate(),                    //日 
        "h+" : this.getHours(),                   //小时 
        "m+" : this.getMinutes(),                 //分 
        "s+" : this.getSeconds(),                 //秒 
        "q+" : Math.floor((this.getMonth()+3)/3), //季度 
        "S"  : this.getMilliseconds()             //毫秒 
    }; 
    if(/(y+)/.test(fmt)) {
            fmt=fmt.replace(RegExp.$1, (this.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; 
}    

注意:Date原型上是没有format这个内置函数的,需要先对其进行扩展,再使用。可以将此段代码放到vue的mounted中,使用时直接在methods中使用即可。

使用示例:

yyyy-MM-dd hh:mm:ss

var time1 = new Date().format("yyyy-MM-dd hh:mm:ss");
console.log(time1); // 2022-01-18 15:20:39

yyyy-MM-dd

var time2 = new Date().format("yyyy-MM-dd");
console.log(time2);  // 2022-01-18

yyyy-MM-dd

var oldTime = (new Date("2022/1/18 15:26:11")).getTime(); // 1642490771000
var curTime = new Date(oldTime).format("yyyy-MM-dd");
console.log(curTime); // 2022-01-18

有关时间戳和Date相互转换的内容可以参考:【JS】获取当前时间戳以及计算时间差 +【AntDesign】时间日期控件计算差值踩坑

你可能感兴趣的:(前端踩坑路漫漫,javascript,vue.js,date)