Использование фильтра для возврата дат - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь получить новый массив, используя фильтр и субдни из "date-fns", чтобы получить даты до 1, 7 и 30 дней, но я не знаю точно, что не так с этим logi c, кто-то может мне помочь?

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 Ответ

0 голосов
/ 28 мая 2020

Число всегда больше, чем это число минус 1. Таким образом, когда вы вычитаете дни из даты, вы просто заставляете условие всегда возвращать истинное значение.

Вам нужно другое значение, чтобы сделать это действительным сравнение. Из того, что вы написали, я не могу точно сказать, что это должно быть. Возможно, просто subDays(new Date(),x).getTime(), если вы хотите, чтобы это произошло в течение x дней с этого момента?

...