• 欢迎来到八本那年博客,很高兴可以在对的年纪遇见对的你!
  • 因主题导致QQ登录的小伙伴在评论中显示默认头像,请去个人中心重新上传头像即可。

JS遍历时间段内的所有日期

代码笔记 barben 2年前 (2022-08-30) 2591次浏览 0个评论

比较常用的功能,实现取一个时间段内的所有日期,或取时间段内指定星期几的日期

function setHouseRatesColumn(startTime, endTime, week) {
  // 获取时间段内的所有日期/指定星期几的日期
  week = week == 7 ? 0 : week;
  let dateList = [];
  startTime = new Date(startTime);
  endTime = new Date(endTime);
  while ((endTime.getTime() - startTime.getTime()) >= 0) {
    let year = startTime.getFullYear();
    let month = startTime.getMonth() + 1 < 10 ? '0' + (startTime.getMonth() + 1) : startTime.getMonth() + 1;
    let day = startTime.getDate().toString().length == 1 ? '0' + startTime.getDate() : startTime.getDate();
    if(isNaN(week) || startTime.getDay() == week) {
      dateList.push(`${year}-${month}-${day}`);
    }
    startTime.setDate(startTime.getDate() + 1);
  }
  return dateList;
}

获取两个日期之间的所有日期

setHouseRatesColumn('2022-08-20', '2022-08-25');

// ["2022-08-20", "2022-08-21", "2022-08-22", "2022-08-23", "2022-08-24", "2022-08-25"]

获取两个日期之间的所有星期一

setHouseRatesColumn('2022-08-01', '2022-08-31', 1);

// ["2022-08-01", "2022-08-08", "2022-08-15", "2022-08-22", "2022-08-29"]

获取两个日期之间的所有星期日

setHouseRatesColumn('2022-08-01', '2022-08-31', 7);

// ["2022-08-07", "2022-08-14", "2022-08-21", "2022-08-28"]

八本那年博客,我们一直都在
如作者未注明既为原创文章,转载请注明本文链接及出处
JS遍历时间段内的所有日期 - https://www.barben.cn/code/925.html
喜欢 (77)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体

在八本那年评论需要带上你的昵称和邮箱哦!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址