我有一个包含多个日期的数组,我想从这个数组返回一个只包含属于当前周的日期的数组。我该怎么做?
最佳答案
唯一困难的部分是找到一周的时间范围。为此,您可以这样做:
function getWeekDates() {
let now = new Date();
let dayOfWeek = now.getDay(); //0-6
let numDay = now.getDate();
let start = new Date(now); //copy
start.setDate(numDay - dayOfWeek);
start.setHours(0, 0, 0, 0);
let end = new Date(now); //copy
end.setDate(numDay + (7 - dayOfWeek));
end.setHours(0, 0, 0, 0);
return [start, end];
}
let [start, end] = getWeekDates();
console.log(start.toLocaleString(), end.toLocaleString());
现在,过滤它们:
function filterDatesByCurrentWeek(dates){
let [start, end] = getWeekDates();
return dates.filter(d => +d >= +start && +d < +end);
}
这是假设您的日期是日期对象。如果不是,您将需要一种方法来解析它们并获取日期对象。
关于javascript - 如何从 Javascript 或 Typescript 的常规日期列表中过滤本周的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44958706/