日期过滤器问题,包括从日期到现在的选择

时间:2019-05-10 10:01:09

标签: javascript angular typescript linq logic

我有以下逻辑可以过滤两个日期之间的日期和时间。

 this.downloadData = this.downloadData.filter(
      m => new Date(m.LogTime) >= new Date(localStorage.getItem('fromDate')) && new Date(m.LogTime) <= new Date(localStorage.getItem('toDate'))
      );

但是它将过滤所选日期和日期,它将过滤日期的第二天和日期的前一天。

我希望在结果中也包括从日期到日期的选择。我该如何更改逻辑?

Eg:

DateTime array   

2001-12-21 21:00
2001-12-22 21:00
2001-12-23 21:00
2001-12-24 21:00
2001-12-25 21:00 

如果我从2001年12月21日21:00到2001年12月25日21:00进行过滤

Current result

2001-12-21 21:00
2001-12-22 21:00
2001-12-23 21:00
2001-12-24 21:00
2001-12-25 21:00 

Expected result


2001-12-22 21:00
2001-12-23 21:00
2001-12-24 21:00

1 个答案:

答案 0 :(得分:0)

检查以下逻辑,让我知道

将日期转换为毫秒,并验证给定日期与起始日期,给定日期与起始日期之间的差异。

  var fromDate = Date.parse(localStorage.fromDate); // parse to date object
  var toDate = Date.parse(localStorage.toDate);

  this.downloadData = this.downloadData.filter(
          m => fromDate-Date.parse(m.LogTime)<=0 && Date.parse(m.LogTime)-toDate<=0
          );

让我知道它是否有帮助