我写了以下代码
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日星期五9:10:27 GMT + 0530(印度标准时间)
localStorage.getItem('toDate'):2018年9月7日星期五9: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(India Standard Time 和 2018年9月7日星期五09:30:27 GMT + 0530(印度标准时间) 不在第二个数组logtime值之间,该值是9/7/2018 9:02:15 AM。
只有第一个应该显示我在做什么错?为什么两个数组项都列出而没有任何过滤器?
答案 0 :(得分:1)
我自己修复了
this.downloadData = this.downloadData.filter(
m => new Date(m.LogTime) >= new Date(localStorage.getItem('fromDate')) && new Date(m.LogTime) <= new Date(localStorage.getItem('toDate'))
);
答案 1 :(得分:1)
检查以下逻辑,让我知道
var fDate = Date.parse(localStorage.fromDate); // parse to date object
var tDate = Date.parse(localStorage.toDate);
this.downloadData = this.downloadData.filter(
m => fDate-Date.parse(m.LogTime)<=0 && Date.parse(m.LogTime)-tDate<=0
);
让我知道它是否有帮助