functionparseTime(time, cFormat){if(arguments.length ===0||!time){returnnull}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))){// support "1548221490638"
time =parseInt(time)}else{// support safari// https://stackoverflow.com/questions/4310953/invalid-date-in-safari
time = time.replace(newRegExp(/-/gm),'/')}}if((typeof time ==='number')&&(time.toString().length ===10)){
time = time *1000}
date =newDate(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]// Note: getDay() returns 0 on Sundayif(key ==='a'){return['日','一','二','三','四','五','六'][value ]}return value.toString().padStart(2,'0')})return time_str
}
二、发布计时工具函数
functionformatTime(time, option){if((''+ time).length ===10){
time =parseInt(time)*1000}else{
time =+time
}const d =newDate(time)const now = Date.now()const diff =(now - d)/1000if(diff <30){return'刚刚'}elseif(diff <3600){// less 1 hourreturn Math.ceil(diff /60)+'分钟前'}elseif(diff <3600*24){return Math.ceil(diff /3600)+'小时前'}elseif(diff <3600*24*2){return'1天前'}if(option){returnparseTime(time, option)}else{return(
d.getMonth()+1+'月'+
d.getDate()+'日'+
d.getHours()+'时'+
d.getMinutes()+'分')}}
三、url传参编码函数
functionparam2Obj(url){const search =decodeURIComponent(url.split('?')[1]).replace(/\+/g,' ')if(!search){return{}}const obj ={}const searchArr = search.split('&')
searchArr.forEach(v=>{const index = v.indexOf('=')if(index !==-1){const name = v.substring(0, index)const val = v.substring(index +1, v.length)
obj[name]= val
}})return obj
}