微信小程序根据延迟日期,计算出所需时间范围的时间戳

74 阅读1分钟

一、截图

image.png

image.png

二、代码

// 获取固定延迟天数之后的日期
const dalayAfterDate = (delayDay) => {
  const date = new Date()
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  let newYear = year
  let newMonth = month
  let newDay = parseInt(day) + delayDay
  let lastDay = getLastDay(year,month)  //当月最后一天的日期

  if (newDay > lastDay) {
    if(newMonth > 12){
      newYear = newYear + 1
      newMonth = 1
      newDay = 1
    }else{
      newMonth = newMonth + 1
      newDay = 1
    }
  }
  console.log(date);
  // console.log(newYear);
  // console.log(newMonth);
  // console.log(newDay);
  // console.log(new Date(newYear, newMonth-1,newDay).getTime());
  return new Date(newYear, newMonth-1,newDay).getTime();
}

// 判断最后一天是几号
function getLastDay(year, month) {
  const isLeapYear = ((year % 4)==0) && ((year % 100)!=0) || ((year % 400)==0)
  const maxDays = [1,3,5,7,8,10,12]  
  const middleDays = [4,6,9,11]  
  month = Number(month)
  if (month == 2) {
      if (isLeapYear) {
          return 29
      } else {
          return 28
      }
  }  else if (maxDays.includes(month)) {
      return 31
  } else if (middleDays.includes(month)) {
      return 30
  }
}