js根据当前日期,计算几天后日期

1,212 阅读1分钟

实现:

function getLaterDate(dayNum, dateTime = null) {
  // 如果为null,则格式化当前时间为时间戳
  if (!dateTime) dateTime = +new Date();
  // 如果dateTime长度为10或者13,则为秒和毫秒的时间戳,如果超过13位,则为其他的时间格式
  if (dateTime.toString().length == 10) dateTime *= 1000;
  const timestamp = +new Date(Number(dateTime));

  const one_day = 86400000; // 24 * 60 * 60 * 1000;
  const addVal = dayNum * one_day + timestamp;
  //x天后的日期
  const date = new Date(addVal);

  //格式化日期
  const filters = n => {
    return n < 10 ? (n = '0' + n) : n;
  };
  const month = filters(date.getMonth() + 1);
  const day = filters(date.getDate());
  const hours = filters(date.getHours());
  const minutes = filters(date.getMinutes());
  const seconds = filters(date.getSeconds());

  const lastTime = `${date.getFullYear()}/${month}/${day} ${hours}:${minutes}:${seconds}`;

  return lastTime;
}

使用:

传入为几天后,如7天后。

console.log(getLaterDate(7));
console.log(getLaterDate(7, new Date('2021/10/01 09:00:00')));
console.log(getLaterDate(7, 1633050000000));