javascript - 如何从 Javascript 或 Typescript 的常规日期列表中过滤本周的日期?

标签 javascript date typescript

我有一个包含多个日期的数组,我想从这个数组返回一个只包含属于当前周的日期的数组。我该怎么做?

最佳答案

唯一困难的部分是找到一周的时间范围。为此,您可以这样做:

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/

相关文章:

javascript - 如何将 lodash 直接导入 JavaScript 中的自定义命名空间

javascript - Jquery DIV 中的每个输入(有一个表)

reactjs - 如何获得泛型函数的返回类型?

javascript - 如何将 lint-staged 与 jest --collectCoverageFrom 一起使用

javascript - Typescript - 导入带有路径别名的类失败

javascript - 如何修复具有相同高度的两列具有不同的大小

javascript - 下划线进行一些计算并返回新对象

date - 如何在 SPARQL 中转换日期格式?

mysql - MySQL 中的订单日期格式为 "01 August 2013"

php - 将日期转换为 MYSQL 可以理解的格式?