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);
}

我们测试运行一下:
js 格式化日期 yyyy-MM-dd等其他多种格式_第1张图片
非常完美!

你可能感兴趣的:(js,js)