我在早前写过一个格式化日期的,今天用的时候发现比如 RegExp.$1 这种属性已经被弃用,遂重新写了一版~
function dateFmt(fmt, date) {
if (date && (date instanceof Date)) {
const map = {
'M+': date.getMonth() + 1, // 月份
'd+': date.getDate(), // 日
'H+': date.getHours(), // 小时(24小时制)
'm+': date.getMinutes(), // 分
's+': date.getSeconds(), // 秒
'q+': Math.floor((date.getMonth() + 3) / 3),// 季度
'S': date.getMilliseconds() // 毫秒
};
// 年份替换
fmt = fmt.replace(/(y+)/g, (match, p1) => {
return date.getFullYear().toString().slice(-p1.length);
});
// 其他格式替换
for (let pattern in map) {
fmt = fmt.replace(new RegExp(`(${pattern})`, 'g'), (match, p1) => {
const val = map[pattern].toString();
return p1.length === 1 ? val : val.padStart(p1.length, '0');
});
}
} else {
fmt = "";
}
return fmt;
}调用
var d_date=new Date("2025-06-16 19:04:21");
dateFmt("yyyy-MM-dd HH:mm:ss",d_date);

微信扫码查看本文
发表评论