对 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()
?
我正在尝试使用 "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()
?