对 return 个日期使用过滤器

Using filter to return dates

我正在尝试使用 "date-fns" 中的过滤器和子日来获取新数组,以获取 1、7 和 30 天之前的日期,但我不知道这个逻辑到底有什么问题,有人可以帮帮我?

const handleLoadByDate = useCallback(
    (option: number) => {
      const filtering = favorites?.filter((date: FormattedFavorites) => {
        if (option === 1) {
          return (
            new Date(date.created_at).getTime() >=
            subDays(new Date(date.created_at), 1).getTime()
          );
        }
        if (option === 7) {
          return (
            new Date(date.created_at).getTime() >=
            subDays(new Date(date.created_at), 7).getTime()
          );
        }
        return (
          new Date(date.created_at).getTime() >=
          subDays(new Date(date.created_at), 30).getTime()
        );
      });
      return filtering;
    },
    [favorites],
  );

数字总是大于该数字减 1。因此,当您从日期中减去天数时,您只是让条件始终 return 为真。

您需要不同的值才能进行实际比较。根据您所写的内容,我无法确定它应该是什么。如果您希望它在从现在起的 x 天内,也许只是 subDays(new Date(),x).getTime()