uniapp 日期时间格式化

/**
 * 格式化日期处理(归一化)
 * @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;
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyz141001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值