js date日期格式化
date日期格式化
// 日期格式化
function formatDate(date, fmt) {
const opt = {
'y+': date.getFullYear().toString(), // 年
'M+': (date.getMonth() + 1).toString(), // 月
'd+': date.getDate().toString(), // 日
'h+': date.getHours().toString(), // 时
'm+': date.getMinutes().toString(), // 分
's+': date.getSeconds().toString() // 秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
}
for (const k in opt) {
const ret = new RegExp('(' + k + ')').exec(fmt)
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length === 1) ? (opt[k]) : completeString(opt[k],ret[1].length,'0', false))
// ES8 支持padStart() padEnd() 方法,可用于替换上面的completeString() >>> (opt[k].padStart(ret[1].length, '0')))
}
}
return fmt
};
function completeString(s, targetLength, padString, padStart = true) {
let len = targetLength - String(s).length
if(padStart) for (let i = 0; i < len; i++) s = padString + s
else for (let i = 0; i < len; i++) s += padString
return s
}