简单方法实现

function formatDate (date, format) {
  // 加零
  function add0 (num) {
    return num > 10 ? num : '0' + num
  }
  // 处理成需要格式
  var weekString = ['日', '一', '二', '三', '四', '五', '六']
  const formatObj = {
    yyyy: date.getFullYear(),
    yy: date.getFullYear() % 100,
    MM: add0(date.getMonth() + 1),
    M: date.getMonth() + 1,
    dd: add0(date.getDate()),
    d: date.getDate(),
    HH: add0(date.getHours()),
    H: date.getHours(),
    hh: add0(date.getHours() % 12),
    h: date.getHours() % 12,
    mm: add0(date.getMinutes()),
    m: date.getMinutes(),
    ss: add0(date.getSeconds()),
    s: date.getSeconds(),
    w: weekString[date.getDay()]
  }
  // 替换给出时间格式中的字符为值,得到期望输出
  for (var k in formatObj) {
    format = format.replace(k, formatObj[k])
  }
  return format
}