javascript - 如何根据时间戳过滤对象数组

标签 javascript jquery json momentjs

我有超过 1000 个对象数组,数组中的每个对象都包含日期和时间字段。该记录每秒插入到数据库中,如下所示。在这里,我想要获取过去 7 天的记录,包括基于当前日期+小时+秒的分钟和秒。

示例:

[{
    "date": "11/25/2016 08:45:58",
    "energy": 29940913188,
    "power": 6783,
    "time": 217781102
}, {
    "date": "11/25/2016 08:46:01",
    "energy": 29940913267,
    "power": 6792,
    "time": 217781105
}, {
    "date": "11/25/2016 08:46:02",
    "energy": 29940913318,
    "power": 6791,
    "time": 217781107
}, {
    "date": "11/25/2016 08:46:04",
    "energy": 29940913344,
    "power": 6797,
    "time": 217781108
}, {
    "date": "11/25/2016 08:46:05",
    "energy": 29940913396,
    "power": 6816,
    "time": 217781110
}, {
    "date": "11/25/2016 08:46:07",
    "energy": 29940913421,
    "power": 6798,
    "time": 217781111
}, {
    "date": "11/25/2016 08:46:08",
    "energy": 29940913473,
    "power": 6804,
    "time": 217781113
}]

请告诉我如何使用 JS 或 jquery 来做到这一点

最佳答案

您可以使用如下过滤器来实现此目的。

data.filter((d) => {
  return new Date(d.date).getTime() >= seventhDay.getTime();
});

这里,如果您的date数据类型已经是Date,则无需再次转换为日期new Date(d.date).

此外,它也可以在没有 getTime() 的情况下工作,如下所示。

return new Date(d.date) >= seventhDay;

var data=[{"date":"11/20/2016 08:45:58","energy":29940913188,"power":6783,"time":217781102},{"date":"11/25/2016 08:46:01","energy":29940913267,"power":6792,"time":217781105},{"date":"11/25/2016 08:46:02","energy":29940913318,"power":6791,"time":217781107},{"date":"11/25/2016 08:46:04","energy":29940913344,"power":6797,"time":217781108},{"date":"11/25/2016 08:46:05","energy":29940913396,"power":6816,"time":217781110},{"date":"11/25/2016 08:46:07","energy":29940913421,"power":6798,"time":217781111},{"date":"11/21/2016 08:46:08","energy":29940913473,"power":6804,"time":217781113}]

var seventhDay = new Date();
seventhDay.setDate(seventhDay.getDate() - 7);

var filteredData = data.filter((d) => {
  return new Date(d.date).getTime() >= seventhDay.getTime();
});

console.log(filteredData);

关于javascript - 如何根据时间戳过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40882616/

相关文章:

Android volley 如何在正文中发送带有身份验证 header 和 Json 对象的请求

javascript - 如何在三个js处更新轨迹球控件

javascript - 使用 Q 通过 Node.js 服务器链接数据库查询

javascript - 解析多个 JSON 对象

javascript - 自定义 Javascript 滚动插件不起作用

jquery - 如何使用fnServerData?

javascript - 如何动态替换javascript对象属性名

javascript - Android 应用程序和 Javascript 代码之间的舍入差异

javascript - 文本区域中的对象数组条件样式。 Angular 6

jquery 智能感知 vs2010 mvc3