Javascript:按日期过滤JSON-显示过去和将来的对象

时间:2019-03-16 18:18:40

标签: javascript arrays node.js json

我想要实现的是,按照当前日期(例如现在)的过去和未来事件过滤JSON。我的“过去” API路由应仅显示过去的事件,例如本示例中的"id":1

我可以用momentjslodash来做到这一点吗?什么是正确的方法?

这是我的JSON数组,其中包含datetime时间戳。

[
    {
        "id": 1,
        "datetime": "2017-08-18T15:15:00+0200",
    },
    {
        "id": 2,
        "datetime": "2020-03-31T10:30:00+0200",
    },
    {
        "id": 3,
        "datetime": "2020-03-31T10:30:00+0200",
    }
]

1 个答案:

答案 0 :(得分:1)

您可以使用Date.parse()方法来分析字符串日期,并将其与当前时间和filter进行比较,如下所示:


const data = [
    {
        "id": 1,
        "datetime": "2017-08-18T15:15:00+0200",
    },
    {
        "id": 2,
        "datetime": "2020-03-31T10:30:00+0200",
    },
    {
        "id": 3,
        "datetime": "2020-03-31T10:30:00+0200",
    }
];

const pastDates = data.filter(x => Date.parse(x.datetime) < new Date());

const futureDates = data.filter(x => Date.parse(x.datetime) > new Date());

console.log("Past dates", JSON.stringify(pastDates, null, 4));

console.log("Future dates", JSON.stringify(futureDates, null, 4));