gpt4 book ai didi

javascript - 如何在给定的星期几中获取两个日期之间的所有日期?

转载 作者:行者123 更新时间:2023-11-30 13:45:57 25 4
gpt4 key购买 nike

首先我知道这个问题与这个问题非常相似: How to get all sundays/mondays/tuesdays between two dates?

虽然我要问的是不同的,但我正在尝试创建一个函数,其中星期几是一个变量并且可以有多个,如下所示:

function findClassDays(daysOfWeek, firstDay, lastDay) {
const classDays = [];

return classDays;
}

firstDaylastDay 是 javascript 日期,daysOfWeek 是一个包含 ddd 时刻格式的星期几的数组(例如. 数组可以是 ['Mon', 'Wed', 'Fri']

我如何才能找到这两个日期之间属于 daysOfWeek 的所有日期,前提是之前不知道星期几并且可能有多个?我在链接的问题上看到当你知道这一天时它是如何工作的并且它只是一个但是如果数组有任何天数组合我找不到解决方案。

最佳答案

基于 @JohnHartsock 的回答我们可以创建以下函数

  • 填充 firstDaylastDay 之间的日期范围
  • 根据 daysOfWeek 过滤日期

var days = {Sun: 0, Mon: 1, Tue: 2, Wed: 3, Thu: 4, Fri:5, Sat:6};

function findClassDays(daysOfWeek, firstDay, lastDay) {
let classDays = [];
let rangeDates = getDates(new Date(firstDay), new Date(lastDay));
classDays = rangeDates.filter(f => daysOfWeek.some((d, i) => days[d]== f.getDay()));
return classDays;
}

function getDates(startDate, stopDate) {
var dateArray = new Array();
var currentDate = new Date(startDate);
while (currentDate <= stopDate) {
dateArray.push(new Date (currentDate));
currentDate = currentDate.addDays(1);
}
return dateArray;
}

Date.prototype.addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
}

console.log(findClassDays(['Mon', 'Wed', 'Fri'], '2019-12-01', '2019-12-15'));

关于javascript - 如何在给定的星期几中获取两个日期之间的所有日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59336838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com