/**
* 格式化日期处理(归一化)
* @param {Date} date 日期对象
* 辅助方法
* */let _formatNormalize = (formatter)=>{ // 判断如果传的是函数就直接返回 if(typeof formatter === 'function'){ return formatter; } if(typeof formatter !== 'string'){ throw new TypeError("formatter must be a string") } if(formatter === 'date'){ formatter = 'yyyy-MM-dd' }else if(formatter === 'datetime'){ formatter = 'yyyy-MM-dd HH:mm:ss' } const formatterFunc = (dateInfo)=>{ const {yyyy,MM,dd,HH,mm,ss,ms} = dateInfo; return formatter.replace("yyyy",yyyy) .replace('MM',MM) .replace('dd',dd) .replace('HH',HH) .replace('mm',mm) .replace('ss',ss) .replace('ms',ms); } return formatterFunc; }
/**
* 调用这个方法:参数(日期,'yyyy年MM月dd日',true:是否补0)
* 返回:str:2023年05月31日
*/
let $formate = (date,formatter,isPad=false)=>{ formatter = _formatNormalize(formatter) const dateInfo = { year:date.getFullYear(), month:date.getMonth() + 1, date:date.getDate(), hour:date.getHours(), minute:date.getMinutes(), second:date.getSeconds(), miniSecond:date.getMilliseconds(), }; dateInfo.yyyy = dateInfo.year.toString(); dateInfo.MM = dateInfo.month.toString(); dateInfo.dd = dateInfo.date.toString(); dateInfo.HH = dateInfo.hour.toString(); dateInfo.mm = dateInfo.minute.toString(); dateInfo.ss = dateInfo.second.toString(); dateInfo.ms = dateInfo.miniSecond.toString(); function _pad(prop,len){ dateInfo[prop] = dateInfo[prop].padStart(len,'0'); } if(isPad){ _pad('yyyy',4); _pad('MM',2); _pad('dd',2); _pad('HH',2); _pad('mm',2); _pad('ss',2); _pad('ms',2); } const result = formatter(dateInfo); return result; }
uniapp 日期时间格式化
最新推荐文章于 2024-05-06 16:56:41 发布