如何使用 Moment js 检索最近的{星期几}?
How do I retrieve the most recent {day of the week} with Moment js?
我需要创建一个函数来根据用户的会议日期生成日期范围。用户在不同的日子开会,在这个例子中,我将使用“约翰”,他在星期三与他的小组开会。我需要的两个日期是最近的周三和下周三。
例如,如果今天是 11 月 15 日星期一,则函数应该 return 11/10/2021 & 11/17/2021
我当前的代码只能在会议当天或已经发生之后工作,因为它拉动了本周的星期三和下周的星期三...
const DateRange = () => {
switch (user.groups[0].meetingDay) {
case "monday":
return [1, 8];
case "tuesday":
return [2, 9];
case "wednesday":
return [3, 10];
case "thursday":
return [4, 11];
case "friday":
return [5, 12];
case "saturday":
return [6, 13];
case "sunday":
return [0, 7];
}
};
const firstNumber = DateRange().push(0);
const secondNumber = DateRange().pop(0);
const goalsDateRangeStart = moment().day(firstNumber).format("l");
const goalsDateRangeEnd = moment().day(secondNumber).format("l");
如果在 11 月 15 日使用上面的代码,它将给我 11/17/2021-11/24/2021
Moment 不再受支持。这是 JavaScript 日期 API 解决方案。
注意:日期值范围为 0(星期日)- 6(星期六)
开始日期的计算公式为:
日期值(15日)-(今天的值-(#days in a week - the day parameter value)
15 - ( 1 + 7 - 3) = 10
- 开始日期是 10 号
结束日期是 7 天后:
10 + 7 = 17th
- 结束日是 17 号
代码确保每个日期使用单独的日期 object。
它使用今天的日期调用函数,会议设置为星期三 (3)。函数 returns 和 object 的形式为 {start: Date, end: Date}
:
// Takes a Date object (default today) and int Day of the week (default Monday)
function dateRange(date = new Date(), day = 0) {
const start = new Date(date.setDate(date.getDate() - (date.getDay() + (7 - day))));
return {
start: start,
end: new Date(new Date(start).setDate(start.getDate() + 7))
};
}
// Call function with today's date with meetings scheduled for Wednesdays
const range = dateRange(new Date(), 3);
console.log(range.start.toDateString(),'-', range.end.toDateString());
我需要创建一个函数来根据用户的会议日期生成日期范围。用户在不同的日子开会,在这个例子中,我将使用“约翰”,他在星期三与他的小组开会。我需要的两个日期是最近的周三和下周三。 例如,如果今天是 11 月 15 日星期一,则函数应该 return 11/10/2021 & 11/17/2021
我当前的代码只能在会议当天或已经发生之后工作,因为它拉动了本周的星期三和下周的星期三...
const DateRange = () => {
switch (user.groups[0].meetingDay) {
case "monday":
return [1, 8];
case "tuesday":
return [2, 9];
case "wednesday":
return [3, 10];
case "thursday":
return [4, 11];
case "friday":
return [5, 12];
case "saturday":
return [6, 13];
case "sunday":
return [0, 7];
}
};
const firstNumber = DateRange().push(0);
const secondNumber = DateRange().pop(0);
const goalsDateRangeStart = moment().day(firstNumber).format("l");
const goalsDateRangeEnd = moment().day(secondNumber).format("l");
如果在 11 月 15 日使用上面的代码,它将给我 11/17/2021-11/24/2021
Moment 不再受支持。这是 JavaScript 日期 API 解决方案。
注意:日期值范围为 0(星期日)- 6(星期六)
开始日期的计算公式为: 日期值(15日)-(今天的值-(#days in a week - the day parameter value)
15 - ( 1 + 7 - 3) = 10
- 开始日期是 10 号
结束日期是 7 天后:
10 + 7 = 17th
- 结束日是 17 号
代码确保每个日期使用单独的日期 object。
它使用今天的日期调用函数,会议设置为星期三 (3)。函数 returns 和 object 的形式为 {start: Date, end: Date}
:
// Takes a Date object (default today) and int Day of the week (default Monday)
function dateRange(date = new Date(), day = 0) {
const start = new Date(date.setDate(date.getDate() - (date.getDay() + (7 - day))));
return {
start: start,
end: new Date(new Date(start).setDate(start.getDate() + 7))
};
}
// Call function with today's date with meetings scheduled for Wednesdays
const range = dateRange(new Date(), 3);
console.log(range.start.toDateString(),'-', range.end.toDateString());