字符串使用正则替换的技巧
function formatDate(oldDate, fmt) {
let date = null;
if (typeof oldDate === 'string' || typeof oldDate === 'number') {
date = new Date(oldDate);
} else {
date = oldDate;
}
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').slice(4 - RegExp.$1.length))
}
let o = {
"M+": date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds(),
}
function padLeftZero(str) {
return ("00" + str).substr(str.length);
}
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '';
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str));
}
}
return fmt;
}
开发常用的库,dayjs
- tinydate, A tiny (349B) reusable date formatter. Extremely fast!
- You-Dont-Need-Momentjs