在前端项目中,经常会遇到显示日期、时间的需求,而显示的格式往往是多样的,因此一种可以简单快速的将日期格式转换成我们需要的格式的方法是必要的。话不多说,直接上代码:
/*
全局日期对象上挂载格式化方法
fmt:输出的日期格式,类型String
*/
Date.prototype.format = function(fmt){
let 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(let 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;
}
// 使用示例
new Date().format('yyyy-MM-dd') // 2022-01-19