我正在尝试使用过滤器和“ 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。因此,当您从日期中减去天数时,您只是使条件始终返回true。
您需要一个不同的值才能进行实际比较。从您写的内容来看,我无法确定它应该是什么。如果您希望它从现在起x天之内,也许只是subDays(new Date(),x).getTime()
?