如何使用jmeshpath比较JSON数据中的日期?

时间:2019-01-29 05:46:17

标签: javascript json jmespath

我有一个JSON数据,其中包含jan 23,2018之类的日期。

如何比较JSON数据日期和当前日期?

[
  {
    "id": "user_1",
    "date": "jan 23, 2019"
  },
  {
    "id": "user_2",
    "date": "mar 3, 2017"
  },
  {
    "id": "user_3",
    "date": "feb 23, 2019"
  }
]

如何使用jmespath获取日期大于当前日期的数据?

2 个答案:

答案 0 :(得分:0)

const array = [
  {
    "id": "user_1",
    "date": "jan 23, 2019"
  },
  {
    "id": "user_2",
    "date": "mar 3, 2017"
  },
  {
    "id": "user_3",
    "date": "feb 23, 2019"
  }
];

const newArray = array.map((value) => {
  value.date = new Date(value.date).getTime();
  
  return value;
});

console.log(newArray);
console.log('current time in milliseconds ', new Date().getTime());

/* array.forEach((value) => {
  const date = new Date(value.date);
  console.log(date);
}); */

// console.log('current date', new Date());

循环数组并将日期字符串传递到new Date()以获取日期对象,然后可以将其与当前日期进行比较。

编辑:现在,您可以直接使用毫秒来比较日期。

答案 1 :(得分:0)

您可以使用JMESPath Custom函数来实现。您需要将日期转换为纪元以便比较日期,因为JMESPath不了解日期对象。

您可以在“自定义功能”部分参考以下示例:https://pypi.org/project/jmespath/

我创建了自己的自定义函数,以检查过去的日期是否已超过当前时间至少一定的秒数。这是我的代码:

iframe