美文网首页
获取未来几天的日期

获取未来几天的日期

作者: Neuro_annie | 来源:发表于2022-08-19 11:45 被阅读0次
    /**
     * @description 获取未来几天的日期
     * @param {date | number | string} date - new Date() | new Date().getTime() | '2020-10-10'
     * @param {number} day 未来天数,默认七天
     * @returns {Array} 未来几天的时间
     */
    export function getNextFewDays(date, day = 7) {
      const today = new Date(date);
      const arr = [];
      for (let i = 1; i <= day; i++) {
        const day_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * i;
        const tDate = dateFormat(day_milliseconds, "yyyy-MM-dd");
        arr.push(tDate);
      }
      return arr;
    }
    
    //getNextFewDays("2022-09-12")  ==> ['2022-09-13', '2022-09-14', '2022-09-15', '2022-09-16', '2022-09-17', '2022-09-18', '2022-09-19']
    //getNextFewDays("2022-09-12", 3)  ==> ['2022-09-13', '2022-09-14', '2022-09-15']
    
    
    未来七天安排
    /**
     * @description 对日期进行格式化,
     * @param {date | number | string} date - new Date() | new Date().getTime() | '2020-10-10'
     * @param {string} format - 进行格式化的模式字符串 yyyy-MM-dd hh:mm:ss:SS q W
     * @example
     * // format = 'yyyy-MM-dd' => '2021-10-10'
     *  支持的模式字母有:
     *  y:年,
     *  M:年中的月份(1-12),
     *  W:年中的第几周,
     *  d:月份中的天(1-31),
     *  h:小时(0-23),
     *  m:分(0-59),
     *  s:秒(0-59),
     *  S:毫秒(0-999),
     *  q:季度(1-4)
     * @returns {string}
     */
    export function dateFormat(date, format) {
      if (!checkDate(date)) {
        return "--";
      }
      date = new Date(date);
      const map = {
        M: date.getMonth() + 1, // 月份
        W: getWeekNumber(date), // 周
        d: date.getDate(), // 日
        h: date.getHours(), // 小时
        m: date.getMinutes(), // 分
        s: date.getSeconds(), // 秒
        q: Math.floor((date.getMonth() + 3) / 3), // 季度
        S: date.getMilliseconds() // 毫秒
      };
    
      return format.replace(/([yMWdhmsqS])+/g, (all, t) => {
        let v = map[t];
        if (v !== undefined) {
          if (all.length > 1) {
            v = "0" + v;
            v = v.substr(v.length - 2);
          }
          return v;
        } else if (t === "y") {
          return (date.getFullYear() + "").substr(4 - all.length);
        }
        return all;
      });
    }
    

    相关文章

      网友评论

          本文标题:获取未来几天的日期

          本文链接:https://www.haomeiwen.com/subject/ruqugrtx.html