我在早前写过一个格式化日期的,今天用的时候发现比如 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);

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