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



我想实现的目标是,从当前日期开始通过过去和将来的事件过滤JSON,就像现在一样。我的"过去" API路由应仅显示过去的事件,例如此示例的"id":1

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

这是我的JSON数组,包含datetime Timestamp。

[
    {
        "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",
    }
]

您可以使用 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));

最新更新