首页 > 解决方案 > 无法以角度过滤日期

问题描述

我写了以下代码

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

但它从不过滤数据,我需要帮助。值如下所示:

localStorage.getItem('fromDate'):2018 年 9 月 7 日星期五 09:10:27 GMT+0530(印度标准时间)

localStorage.getItem('toDate'):2018 年 9 月 7 日星期五 09:30:27 GMT+0530(印度标准时间)

数组项 1 如下

CPUStatus
:
"23"

LogTime
:
"9/7/2018 9:20:15 AM"
MemoryStatus
:
"24"

数组项 2 如下

CPUStatus
:
"23"
LogTime
:
"9/7/2018 9:02:15 AM"
MemoryStatus
:
""

当我做console.log(this.downloadData)时过滤后一次;我得到未过滤的结果。

理想情况下,它不应该显示第二个数组项,因为我选择的时间是 Fri Sep 07 2018 09:10:27 GMT+0530(印度标准时间和 Fri Sep 07 09:30:27 GMT+0530(India Standard Time)不是在第二个数组 logtime 值之间,即 9/7/2018 9:02:15 AM。

只有第一个应该显示,我做错了什么?为什么两个数组项都没有任何过滤器列出?

标签: javascriptarraysangulartypescriptlinq

解决方案


我自己修好了

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

推荐阅读