【代码】JavaScript 自定义格式化日期(2025更新)

2025-06-16 19:11:45  阅读 31 次 评论 0 条

我在早前写过一个格式化日期的,今天用的时候发现比如 RegExp.$1 这种属性已经被弃用,遂重新写了一版~

function dateFmt(fmt, date) {
  if (date && (date instanceof Date)) {

    const map = {
      'M+': date.getMonth() + 1,                  // 月份
      'd+': date.getDate(),                       // 日
      'H+': date.getHours(),                      // 小时(24小时制)
      'm+': date.getMinutes(),                    // 分
      's+': date.getSeconds(),                    // 秒
      'q+': Math.floor((date.getMonth() + 3) / 3),// 季度
      'S': date.getMilliseconds()                 // 毫秒
    };

    // 年份替换
    fmt = fmt.replace(/(y+)/g, (match, p1) => {
      return date.getFullYear().toString().slice(-p1.length);
    });

    // 其他格式替换
    for (let pattern in map) {
      fmt = fmt.replace(new RegExp(`(${pattern})`, 'g'), (match, p1) => {
        const val = map[pattern].toString();
        return p1.length === 1 ? val : val.padStart(p1.length, '0');
      });
    }
  } else {
    fmt = "";
  }

  return fmt;
}

调用

var d_date=new Date("2025-06-16 19:04:21"); 
dateFmt("yyyy-MM-dd HH:mm:ss",d_date);

image.png


微信扫码查看本文
本文地址:https://www.yangguangdream.com/?id=2256
版权声明:本文为原创文章,版权归 编辑君 所有,欢迎分享本文,转载请保留出处!
NEXT:已经是最新一篇了

发表评论


表情

还没有留言,还不快点抢沙发?