时间格式化

120 阅读1分钟
// 时间格式化函数,参数1是date对象或字符串, 参数2是时间格式  如 'yyyy-MM-dd'
function timeFilter(date: any, format: string) {
  // 把总毫秒数转化成时间对象
  if (typeof date == "number") {
    // 判断时间戳是秒数还是毫秒数
    if (date.toString().length <= 10) {
      // 10位数字表示秒数, 13位是毫秒数
      date = new Date(date * 1000);
    } else {
      date = new Date(date);
    }
  }
  //获取时间信息, 键是格式正则
  let obj: object = {
    "y+": date.getFullYear(),
    "M+": date.getMonth() + 1,
    "d+": date.getDate(),
    "h+": date.getHours(),
    "m+": date.getMinutes(),
    "s+": date.getSeconds(),
  };
  // 把时间格式字符串中的格式替换为时间信息
  for (const key: string in obj) {
    if (new RegExp(`${key}`).test(format)) {
      // 读取时间信息,并保留两位小数
      var str: string = obj[key] < 10 ? "0" + obj[key] : "" + obj[key];
      // 把格式化字符中的格式字符替换成真正的时间信息
      format = format.replace(new RegExp(`${key}`), str);
    }
  }
  return format;
}