Javascript 如何使用日期fns查找一周中最近的一天
我希望能够根据当前日期和日期fns找出过去一周中最近的一天。假设我需要根据当前日期查找过去最近的星期五、星期三、星期四等 我查阅了文档,只能看到这两种方法,我认为这可能会有所帮助,但我正在寻找的方法却不见了 有什么想法吗Javascript 如何使用日期fns查找一周中最近的一天,javascript,date-fns,Javascript,Date Fns,我希望能够根据当前日期和日期fns找出过去一周中最近的一天。假设我需要根据当前日期查找过去最近的星期五、星期三、星期四等 我查阅了文档,只能看到这两种方法,我认为这可能会有所帮助,但我正在寻找的方法却不见了 有什么想法吗 const { getISODay, addDays } = require('date-fns'); function getClosestDayOfLastWeek(dayOfWeek, fromDate = new Date()) { // follow the
const { getISODay, addDays } = require('date-fns');
function getClosestDayOfLastWeek(dayOfWeek, fromDate = new Date()) {
// follow the getISODay format (7 for Sunday, 1 for Monday)
const dayOfWeekMap = {
Mon: 1,
Tue: 2,
Wed: 3,
Thur: 4,
Fri: 5,
Sat: 6,
Sun: 7,
};
// -7 means last week
// dayOfWeekMap[dayOfWeek] get the ISODay for the desired dayOfWeek
// e.g. If today is Sunday, getISODay(fromDate) will returns 7
// if the day we want to find is Thursday(4), apart from subtracting one week(-7),
// we also need to account for the days between Sunday(7) and Thursday(4)
// Hence we need to also subtract (getISODay(fromDate) - dayOfWeekMap[dayOfWeek])
const offsetDays = -7 - (getISODay(fromDate) - dayOfWeekMap[dayOfWeek]);
return addDays(fromDate, offsetDays);
}
console.log(getClosestDayOfLastWeek('Mon'));