Javascript日期格式化的简单实现

简要说明

  • 首先这是一个最简单的实现,并不严谨,但能说明问题,将日期格式化的核心思想体现出来,这是重点;
  • 其次,这只是实现日期格式化的一种方式,并不是唯一方式,这种方式相对比较简单,仅供参考;

实现原理

  1. 通过Date对象的相关方法获取到年月日时分秒等数据,再定义格式化的键比如:年对y,月对应M等,生成一个键值对象;
  2. 最为核心的就是正则匹配了,将格式化字符串进行正则匹配替换即可,关于正则的使用那是一门大学问,需要多点时间去吭;
  3. 以下是一个简单的示例代码,可根据需要完善。

示例代码

function (date, fmt = 'yyyy-MM-dd') {
    let map = {
        'y': date.getFullYear(),
        'M': date.getMonth() + 1,
        'd': date.getDate()
    };
    return fmt.replace(/([yMd])+/g, function (match, key) {
        let val = map[key].toString();
        if (val.length === 1) val = '0' + val;
        if (key === 'y') {
            val = val.substr(4 - match.length);
        } else {
            val = val.substr(2 - match.length);
        }
        return val;
    })
}

发表回复