js格式化日期/年月日/是否是今天/是否是本周

const getTimeFormat = (date = new Date()) => {
  const getYMD = (date) => {
    const sliceStr = (str) => ('0' + str).slice(-2)
    const time = date.getTime() //毫秒 date的时间戳
    const year = date.getFullYear() //年
    const month = sliceStr(date.getMonth() + 1) //月
    const day = sliceStr(date.getDate()) //日
    const weekDay = date.getDay() || 7  //星期几
    const ymd = `${year}-${month}-${day}`
    return {
      date,
      time,
      year,
      month,
      day,
      weekDay,
      ymd
    }
  }

  const { date: today, time: todayTime, weekDay: todayWeek, ymd: todayYMD } = getYMD()  //今天

  const { time, year, month, day, weekDay, ymd } = getYMD(date) //传入的date数据

  const dateStart = new Date(`${ymd} 00:00:00`).getTime() //date当天的开始时间
  const dateEnd = new Date(`${ymd} 23:59:59`).getTime()  //date当天的结束时间
  const isToday = todayYMD === ymd
  const oneDayTime = 24 * 60 * 60 * 1000

  const MondayTime = dateStart - (weekDay - 1) * oneDayTime //date的周一 yyyy:mm:dd 00:00:00
  const SundayTime = dateEnd + (7 - weekDay) * oneDayTime //date的周日  yyyy:mm:dd 23:59:59

  // const nextMonday = dateStart + oneDayTime * (8 - todayWeek) //date的下周一  yyyy:mm:dd 00:00:00
  const isThisWeek = MondayTime <= todayTime && todayTime <= SundayTime// 是否是本周

  return {
    today,
    todayTime,
    todayYMD,
    todayWeek,
    time,
    year,
    month,
    day,
    weekDay,
    ymd,
    dateStart,
    dateEnd,
    MondayTime,
    SundayTime,
    isToday,
    isThisWeek
  }
}
// console.log(getTimeFormat(new Date()));
// console.log(getTimeFormat(new Date(1678031999000)));
console.log(getTimeFormat(new Date(1679533199000)));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值