我想要实现的是,按照当前日期(例如现在)的过去和未来事件过滤JSON。我的“过去” API路由应仅显示过去的事件,例如本示例中的"id":1
。
我可以用momentjs
和lodash
来做到这一点吗?什么是正确的方法?
这是我的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",
}
]
答案 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));