格式化日期

就是对原型链上进行简单的修改封装,格式化后的日期比容易看懂,而且大部分网站都有格式化日期的需求

默认数据:Wed Jul 12 2023 15:13:42 GMT+0800 (中国标准时间)

格式化后:2023-07-12 15:13:12

上代码

/**
 * 格式化日期
 * @param { String } partten 
 * @returns 
 */
Date.prototype.format = function (partten = "yyyy-MM-dd hh:mm:ss") {
    // 当前数据
    let now = {
        // 月 
        "M+": this.getMonth() + 1,
        // 日 
        "d+": this.getDate(),
        // 时 
        "h+": this.getHours(),
        // 分 
        "m+": this.getMinutes(),
        // 秒 
        "s+": this.getSeconds(),
        // 毫秒
        "S": this.getMilliseconds()
    };

    // 年
    if (/(y+)/.test(partten)) partten = partten.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

    // 遍历转换
    for (let key in now) {
        // 格式不正确
        if (new RegExp(`(${key})`).test(partten) === false) continue;
        // 转换
        partten = partten.replace(RegExp.$1, (RegExp.$1.length == 1) ? now[key] : `00${now[key]}`.substr(`${now[key]}`.length));
    }

    // 返回结果
    return partten;
}

直接使用

通过partten参数来决定最后的格式,默认为yyyy-MM-dd hh:mm:ss

// 正常输出
new Date();
// Wed Jul 12 2023 15:13:42 GMT+0800 (中国标准时间)

// 格式化后
new Date().format();
// 2023-07-12 15:13:12

支持的格式

这只是个简单的封装,应对常见的格式

标识

含义

yyyy

MM

dd

hh

mm

ss

S

毫秒

在封装的过程中,这些标识全部可以自己替换成自己喜欢的

日期对象兼容斜杠:

https://captaintwo.com/archives/date-compatibility-slashes

文章作者: CaptainTwo
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CaptainTwo
前端 JavaScript NodeJs
喜欢就支持一下吧