const formatTime = function formatTime (time, template) {
if (typeof template !== "string") {
time = new Date().toLocaleString('zh-CN', { hour12: false })
}
if (typeof template !== 'string') {
template = "{0}年{1}月{2}日 {3}:{4}:{5}"
}
// 解析出年月日等信息
let arr = []
if (/^\d{8}$/.test(time)) {
let [, $1, $2, $3] = /(\d{4})(\d{2})(\d{2})/.exec(time)
arr.push($1, $2, $3)
} else {
arr = time.match(/\d+/g)
}
//把获取的数据替换模板
return template.replace(/\{(\d+)\}/g, (_, $1) => {
let item = arr[$1] || '00'
if (item.length < 2) item = '0' + item
return item
})
}
console.log(formatTime('20231226121230', "{0}年{1}月{2}日 {3}:{4}:{5}")); // 输出:2023年12月26日 12:12:30
console.log(formatTime('20231226121230', "{3}:{4}:{5} {0}年{1}月{2}日")); // 输出:12:12:30 2023年12月26日
console.log(formatTime('20231226', "{0}年{1}月{2}日 {3}:{4}:{5}")) // 输出:2023年12月26日 00:00:00
console.log(formatTime('20231226', "{1}-{2}-{0} {3}:{4}:{5}")) // 输出:12-26-2023 00:00:00
console.log(formatTime('20231226', "{0}/{1}/{2} {3}:{4}:{5}")) // 输出:2023/12/26 00:00:00
//简单的获取月日时分
//补零操作
const zero = function (text) {
text = String(text)
return text.length < 2 ? '0' + text : text
}
//对日期的处理方法
const formatTime = function (time) {
let arr = time.match(/\d+/g),//正则表达式
[, month, day, hour = '00', minute = '00'] = arr
return `${zero(month)} -${zero(day)} ${zero(hour)}:${zero(minute)}`
}
//formatTime(new Date().toLocaleString('zh-CN', { hour12: false }))这个是当前时间
console.log(formatTime(new Date().toLocaleString('zh-CN', { hour12: false })))//'12 -26 15:35'