js 格式化日期 yyyy-MM-dd等其他多种格式

前端开发的时候,我们总会对日期进行格式化,变成我们所需要的格式,下面封装了一个方法,直接拿来用就行,不管你想要什么样的格式,都是适合的。具体看示例

/**
 * 格式化函数 , 给日期格式化
 * date为 new Date()对象, fmt为 'yyyy-MM-dd hh:mm:ss'的格式
 */
function formatDate(date, fmt) {
    
    
  //获取年份
  if (/(y+)/.test(fmt)) {
    
    
    // 把数字变成字符串
    let dateY = date.getFullYear() + "";
    //RegExp.$1 在判断中出现过,且是括号括起来的,所以 RegExp.$1 就是 "yyyy"
    fmt = fmt.replace(RegExp.$1, dateY.substr(4 - RegExp.$1.length));
  }

  //获取其他
  let o = {
    
    
    "M+": date.getMonth() + 1,
    "d+": date.getDate(),
    "h+": date.getHours(),
    "m+": date.getMinutes(),
    "s+": date.getSeconds(),
  };
  for (const k in o) {
    
    
    if (new RegExp(`(${
      
      k})`).test(fmt)) {
    
    
      let str = o[k] + "";
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? str : padLeftZero(str)
      );
    }
  }
  return fmt;
}

function padLeftZero(str) {
    
    
  return ("00" + str).substr(str.length);
}

我们测试运行一下:
在这里插入图片描述
非常完美!

猜你喜欢

转载自blog.csdn.net/qq_42667613/article/details/121787990