时间格式化(自定义格式)

/**
 * 时间格式化
 * @param {*} value 时间
 * @param {*} fmt 格式
 * 使用举例: formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss');
 */
export function formatDate(value, fmt) {
  if (!value) {
    return '';
  }
  let date = new Date(value);
  if (date === 'Invalid Date') {
    date = new Date(parseFloat(value));
  }
  if (!fmt) {
    fmt = 'yyyy-MM-dd hh:mm:ss';
  }
  const o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    'h+': date.getHours(), // 小时
    'm+': date.getMinutes(), // 分
    's+': date.getSeconds(), // 秒
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    S: date.getMilliseconds(), // 毫秒
  };
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (`${date.getFullYear()}`).substr(4 - RegExp.$1.length));
  }
  Object.keys(o).forEach((k) => {
    if (new RegExp(`(${k})`).test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : ((`00${o[k]}`).substr((`${o[k]}`).length)));
    }
  });
  return fmt;
}
posted @ 2020-02-25 14:39  ฅ˙-˙ฅ  阅读(222)  评论(0编辑  收藏  举报