React - 过滤日期数组时出错

React - getting error when filter array of dates

这给了我一组 createdAt 时间戳,例如:['2022-05-22T21:57:45.202Z', '2022-05-22T21:57:45.205Z']

 const unpaid = feeStatus.map((date) => {
    return date.createdAt;
  });

现在我想尝试过滤数组并仅显示早于 14 天的日期:

unpaid.filter(
    (test) => new Date().getTime() - test.getTime() / (1000 * 60 * 60 * 24) > 14
  );

但我收到此错误:未捕获的类型错误:test.getTime 不是函数

您需要将字符串格式日期转换为 Date 才能使用其原型方法:

unpaid.filter(
    (test) => new Date().getTime() - new Date(test).getTime() / (1000 * 60 * 60 * 24) > 14
  );

首先,getTime()函数是Date对象的一个​​方法。因此,您需要将字符串转换为有效的 Date 对象。例如new Date(str),或者使用库来处理它,比如 date-fns.

其次,您的公式中缺少一组括号。应该是:

(new Date().getTime() - new Date(test)) / (1000 * 60 * 60 * 24) > 14.

参考文献: