shit test


"use strict";

/**
 * 
 * @author xgqfrms
 * @license MIT
 * @copyright xgqfrms
 * @created 2020-08-0
 * @modified 
 * 
 * @description 
 * @difficulty Easy Medium Hard
 * @complexity O(n)
 * @augments 
 * @example 
 * @link 
 * @solutions 
 * 
 */

const log = console.log;

const formatDate = (time = (new Date()), format = ``) => {
  // timestamp
  let year = time.getFullYear();
  let month = time.getMonth() + 1;
  let date = time.getDate();
  if(!format.includes(`yyyy`)) {
    year = `{year}`.slice(2);
  }
  if(format.includes(`MM`)) {
    month = month > 9 ? month : `0` + month;
  }
  if(format.includes(`dd`)) {
    date = date > 9 ? date : `0` + date;
  }
  // 年月日
  // 24 HH
  let hour = time.getHours();
  let minute = time.getMinutes();
  let second = time.getSeconds();
  if(format.includes(`H`)) {
    if(format.includes(`HH`)) {
      hour = hour > 9 ? hour : `0` + hour;
    } else {
      // H
      // hour = hour;
    }
  } else {
    if(format.includes(`hh`)) {
      hour = hour > 12 ? `0` + (hour - 12) : `0` + hour;
    } else {
      // h
      hour = hour > 12 ? (hour - 12) : hour;
    }
  }
  if(format.includes(`mm`)) {
    minute = minute > 9 ? minute : `0` + minute;
  }
  if(format.includes(`ss`)) {
    second = second > 9 ? second : `0` + second;
  }
  // 时分秒
  const weekSet = ['日', '一', '二', '三', '四', '五', '六'];
  let weekDay = ``;
  const arr = format.split(` `).filter(i => i.includes(`w`));
  let desc = arr.length ? arr[0].replace(`w`, ``) : ``;
  if(format.includes(`w`)) {
    const day = time.getDay();
    weekDay = weekSet[day];
  }
  return `${year}-${month}-${date} ${hour}:${minute}:${second} ${desc}${weekDay}`.trim();
}

// formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w')

// "2014-09-05 13:14:20 星期五"

// 2014-09-05 13:14:20 星期五


const formatDate = (time = (new Date()), format = ``) => {
  // timestamp
  let year = time.getFullYear();
  let month = time.getMonth() + 1;
  let date = time.getDate();
  if(!format.includes(`yyyy`)) {
    year = `{year}`.slice(2);
  }
  if(format.includes(`MM`)) {
    month = month > 9 ? month : `0` + month;
  }
  if(format.includes(`dd`)) {
    date = date > 9 ? date : `0` + date;
  }
  // 年月日
  // 24 HH
  let hour = time.getHours();
  let minute = time.getMinutes();
  let second = time.getSeconds();
  if(format.includes(`H`)) {
    if(format.includes(`HH`)) {
      hour = hour > 9 ? hour : `0` + hour;
    } else {
      // H
      // hour = hour;
    }
  } else {
    if(format.includes(`hh`)) {
      hour = hour > 12 ? `0` + (hour - 12) : `0` + hour;
    } else {
      // h
      hour = hour > 12 ? (hour - 12) : hour;
    }
  }
  if(format.includes(`mm`)) {
    minute = minute > 9 ? minute : `0` + minute;
  }
  if(format.includes(`ss`)) {
    second = second > 9 ? second : `0` + second;
  }
  // 时分秒
  const weekSet = ['日', '一', '二', '三', '四', '五', '六'];
  let weekDay = ``;
  const arr = format.split(` `).filter(i => i.includes(`w`));
  let desc = arr.length ? arr[0].replace(`w`, ``) : ``;
  // const arr = format.split(` `).filter(i => i.includes(`w`));
  // let desc = arr.length ? arr[0].replace(`w`, ``) : ``;
  if(format.includes(`w`)) {
    const day = time.getDay();
    weekDay = weekSet[day];
  }
  const ymd = format.split(` `)[0].split(`-`).map(i => i.toLowerCase());
  const sfm = format.split(` `)[1].split(`:`).map(i => i.toLowerCase());;
  let result = ``;
  for(let i of ymd) {
    if(i.includes(`y`)) {
      result += `${year}`;
    }
    if(i.includes(`m`)) {
      result += `-${month}`;
    }
    if(i.includes(`d`)) {
      result += `-${date}`;
    }
  }
  for(let i of sfm) {
    if(i.includes(`h`)) {
      result += ` ${hour}`;
    }
    if(i.includes(`m`)) {
      result += `:${minute}`;
    }
    if(i.includes(`s`)) {
      result += `:${second}`;
    }
  }
  if(desc) {
    result += ` ${desc}${weekDay}`
  }
  result = result.trim();
  return result;
  // return `${year}-${month}-${date} ${hour}:${minute}:${second} ${desc}${weekDay}`.trim();
}