这可以通过 javascript 中的两个简单函数来实现
第一个是知道你所在的当前日期(和当天)
const d = new Date();
const day = d.getDay();
The getDay() method returns the day of the week (0 to 6) of a date.
Sunday = 0, Monday = 1, ... (See below):
更多信息在这里:https://www.w3schools.com/jsref/jsref_getday.asp。
知道日期后,您只需要将数组从
['Thursday', 'Friday']
至[4,5]
然后你需要计算天数之间的偏移量
let offset = (targetDay - currentDayInNumber) % 7
if (offset < 0) { offset += 7 } // Want to make sure you offset is always positive
周二 = 2、周四 = 4 或周一 = 1 的示例
let offset = (4 - 2) % 7 // ( 2 )
let offset = (1 - 2) % 7 // (-1)
offset = -1 + 7 // (6) we will be adding 6 days
然后你可以简单地循环并添加天数
var date = new Date();
date.setDate(date.getDate() + days); // For tomorrow + 1 for example
让我知道是否有帮助,否则可以为您提供完整的解决方案,但想提供指导而不是提供解决方案
- 编辑 -
为了完成这个并发生这些事情,你可以有一个计数器
const counterDays = {
0:0,
1:0,
..,
6:0
}
通过循环时,每次设置一天时,都会增加它的计数器
这将变成这样:
date.setDate(date.getDate() + offset + 7 * counterDays[targetDay]);
counterDays[targetDay]++;
我在这里为您提供了示例代码:
https://onecompiler.com/javascript/3y9sb8dqe
希望这可以帮助