一些你会用到的格式化时间的方法

96 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

1. 格式化时间 2021-12-31 11:25:11

// 格式化时间 2021-12-31 11:25:11
export function formatTime(timestamp) {
  if (!Number(timestamp)) {
    return "-";
  }
  const date = new Date(timestamp * 1000);
  const y = date.getFullYear();
  let MM = date.getMonth() + 1;
  MM = MM < 10 ? "0" + MM : MM;
  let d = date.getDate();
  d = d < 10 ? "0" + d : d;
  let h = date.getHours();
  h = h < 10 ? "0" + h : h;
  let m = date.getMinutes();
  m = m < 10 ? "0" + m : m;
  let s = date.getSeconds();
  s = s < 10 ? "0" + s : s;
  return y + "-" + MM + "-" + d + " " + h + ":" + m + ":" + s;
}

2. 格式化时间 2021-12-31 上午

export function formatTimeH(timestamp) {
  if (!Number(timestamp)) {
    return "-";
  }
  const date = new Date(timestamp * 1000);
  const y = date.getFullYear();
  let MM = date.getMonth() + 1;
  MM = MM < 10 ? "0" + MM : MM;
  let d = date.getDate();
  d = d < 10 ? "0" + d : d;
  let h = date.getHours();
  h = h < 12 ? "上午" : "下午";
  return y + "-" + MM + "-" + d + " " + h;
}

3. 格式化时间 2021-12-31

export function formatTimeDay(timestamp) {
  if (!Number(timestamp)) {
    return "-";
  }
  const date = new Date(timestamp * 1000);
  const y = date.getFullYear();
  let MM = date.getMonth() + 1;
  MM = MM < 10 ? "0" + MM : MM;
  let d = date.getDate();
  d = d < 10 ? "0" + d : d;
  return y + "-" + MM + "-" + d ;
}

4. 聊天的时间控制

// 聊天的时间控制
export function chatTime(timestamp) {
  if (!Number(timestamp)) {
    return "-";
  }
  const date = new Date(timestamp * 1000);
  const y = date.getFullYear();
  const yy = y.toString().substr(2, 2);
  let MM = date.getMonth() + 1;
  MM = MM < 10 ? "0" + MM : MM;
  let d = date.getDate();
  d = d < 10 ? "0" + d : d;
  let h = date.getHours();
  h = h < 10 ? "0" + h : h;
  let m = date.getMinutes();
  m = m < 10 ? "0" + m : m;
  let s = date.getSeconds();
  s = s < 10 ? "0" + s : s;
  var weekday = [
    "星期日",
    "星期一",
    "星期二",
    "星期三",
    "星期四",
    "星期五",
    "星期六",
  ];
  var myddy = date.getDay(); //获取存储当前日期,星期
  let days =
    (new Date(new Date().setHours(0, 0, 0, 0)).getTime() - timestamp * 1000) /
    (24 * 60 * 60 * 1000);
  if (days < 0) {
    return h + ":" + m;
  } else if (days > 0 && days < 1) {
    return "昨天" + " " + h + ":" + m;
  } else if (days > 1 && days < 7) {
    return weekday[myddy] + " " + h + ":" + m;
  } else if (days > 7) {
    return yy + "/" + MM + "/" + d;
  }
}

5. 传入的时间和当前时间的比较

// chatContentTime(1666597442041*1000) =》 当天时间 '15:44'
export function chatContentTime(timestamp) {
  if (!Number(timestamp)) {
    return "-";
  }
  const date = new Date(timestamp * 1000);
  const y = date.getFullYear();
  const yy = y.toString().substr(2, 2);
  let MM = date.getMonth() + 1;
  MM = MM < 10 ? "0" + MM : MM;
  let d = date.getDate();
  d = d < 10 ? "0" + d : d;
  let h = date.getHours();
  h = h < 10 ? "0" + h : h;
  let m = date.getMinutes();
  m = m < 10 ? "0" + m : m;
  let s = date.getSeconds();
  s = s < 10 ? "0" + s : s;
  var weekday = [
    "星期日",
    "星期一",
    "星期二",
    "星期三",
    "星期四",
    "星期五",
    "星期六",
  ];
  var myddy = date.getDay(); //获取存储当前日期,星期
  let days =
    (new Date(new Date().setHours(0, 0, 0, 0)).getTime() - timestamp * 1000) /
    (24 * 60 * 60 * 1000);
  if (days < 0) {
    return h + ":" + m;
   // 不够一天显示
  } else if (days > 0 && days < 1) {
    return "昨天" + " " + h + ":" + m;
   // 不够一周显示
  } else if (days > 1 && days < 7) {
    return weekday[myddy] + " " + h + ":" + m;
    // 年
  } else if (days > 7) {
    return y + "年" + MM + "月" + d + "日" + " " + h + ":" + m;
  }
}

6.多位数金额 通过 , 分割

moneyFilter('123499') => '123,499'

export function moneyFilter(value) {
  if (!value) {
    return "0.00";
  } else if (
    (typeof value == "number" && value.toString().indexOf(".") != -1) ||
    (typeof value == "number" && value.toString().indexOf(".") == -1)
  ) {
    value += "";
  }
  let floatPart;
  let isDolt = false;
  let value2Array;
  if (value.indexOf(".") != -1) {
    floatPart = value.split(".")[1];
    value2Array = value.split(".");
    isDolt = true;
  } else {
    isDolt = false;
    value2Array = [value];
  }
  let intPartFormat;
  intPartFormat = value2Array[0].replace(/(\d)(?=(?:\d{3})+$)/g, "$1,"); //将整数部分逢三一断
  //=2表示数据有小数位
  return isDolt ? intPartFormat + "." + floatPart : intPartFormat;
}

7.超过20位省略

export function ellipsis(value) {
  if (!value) return "";
  if (value.length > 20) {
    return value.slice(0, 20) + "...";
  }
  return value;
}

8. 员工等级

export function levelWeight(val) {
  // 性别 1:男  2:女  0:无
  let level = Number(val);
  let res = "";
  switch (level) {
    case 0:
      res = "差评过多";
      break;
    case 10:
      res = "初级";
      break;
    case 20:
      res = "中级";
      break;
    case 30:
      res = "高级";
      break;
    case 40:
      res = "金牌";
      break;
    default:
      res = "-";
  }
  return res;
}

8. 获取一个月的第一天 时间戳

export const firstMonthDay = () => {
  let time = new Date()
  time.setDate(1) // 将当前日期设置成第一天
  let year = time.getFullYear()
  let month = time.getMonth() +1
  let day = time.getDate()
  let firstDay = new Date(year+'-'+month+'-'+day)
  return firstDay.getTime()
}

9. 获取一个月的最后一天 时间戳

export const lastMonthDay = ()  => {
let time = new Date()
let year = time.getFullYear()
let month = time.getMonth()+1
// 这里传入的是整数时间,返回的是下个月的第一天,因为月份是0-11
let nextMonthFirthDay = new Date(year,month,1) // 下个月的第一天
let oneDay = 60*60*24*1000 // 一天的时间毫秒数
let endDay = new Date(nextMonthFirthDay - oneDay) 
let day = endDay.getDate() // 本月最后一天
let lastDay = new Date(`${year}-${month}-${day} 23:59:59`)
return lastDay.getTime()
}

10. 获取本月到当前日期的一天

export const oneToCurrentDay = (timeFormat='timestamp') => {
  // 时间戳格式
  let firstDay = firstMonthDay() // 用的第8条
  let currentDay = +new Date()
  // 2022-9-1 格式    formatTimeDay用的第3条
  let formatFirstDay = formatTimeDay(firstDay/1000)
  let formatCurrentDay = formatTimeDay(currentDay/1000)
  return timeFormat === 'timestamp' ? [firstDay,currentDay] : [formatFirstDay,formatCurrentDay]
}

11.截取时间 20220901 => 2022-09

export const substrTime = time => {
    if(!time){
      return '-'
    }
    let year = time.substr(0,4)
    let month = time.substr(4,2)
    return `${year}-${month}`
}