//param
time {(Object | string | number)} 需要格式化的时间
cFormat {string} 格式化规则
return {string | null} 格式化后的时间
、、、、、、、、、、、、、、
changeDate(time,cformat){
if(arguments.length===0||!time){
return null
}
const format=cformat || '{y}-{m}-{d} {h}:{i}:{s}'
let date;
if(typeof time==='object'){
date=time
}else{
if((typeof time==='string')){
if((/^[0-9]+$/.test(time))){
time=parseInt(time)
}else{
time=time.replace(new RegExp(/-/gm),'/')
}
}
if((typeof time==='number')&&(time.toString().length===10)){
time=time*1000
}
date=new Date(time)
}
const formatObj={
y:date.getFullYear(),
m:date.getMonth()+1,
d:date.getDate(),
h:date.getHours(),
i:date.getMinutes(),
s:date.getSeconds(),
a:date.getDay()
}
const time_str=format.replace(/{([ymdhisa])+}/g,(result,key)=>{
const value=formatObj[key]
if(key==='a'){return ['日','一','二','三','四','五','六'][value]}
return value.toString().padStart(2,'0')
})
console.log('time_str',time_str);
return time_str
}
其中,padStart()
用于头部补全,padEnd()
用于尾部补全。
一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。