使用 dayjs() 查看一个日期是否在另一个日期之后
Using dayjs() to see if a date is after another one
我正在尝试遍历一个数组并将今天之后的任务推送到另一个数组中。有人能告诉我我做错了什么吗? (task.reminderDate 是正确的类型,我在其他函数中使用它并且有效)
taskList.forEach((task) => {
if (dayjs().isAfter(dayjs(task.reminderDate))) {
missedFilter.push(task);
}
});
我认为您误解了 isAfter 的工作原理。
console.log(dayjs("2031-01-01").isAfter(dayjs())); //This returns true
目前您正在比较今天是否在提醒日期之后。所以您想更改日期的顺序:
if (dayjs(task.reminderDate).isAfter(dayjs()))
现在你正在比较 reminderDate 是否晚于今天的日期
你的描述没有描述你在做什么,但我不确定哪个是错误的:
这是在测试“今天”是否晚于 (task.reminderDate)
所以,输出应该是数组“missedFilter”应该填满提醒日期早于今天的任务。
这似乎是一件合理的事情,但您声明要将今天之后的任务推送到一个数组中。
我认为您的实际代码没有任何问题,但您打算执行的操作的语义可能有问题。
例如如果你真的想要在未来有一个 reminderDate 的任务,你应该反转代码:
var today = dayjs();
taskList.forEach((task) -> {
if (dayjs(task.reminderDate).isAfter(today))) {
missedFilter.push(task);
}
});
(另请注意,将 dayjs 初始化程序推到循环之外。效率较低,但也有助于清晰。)
我正在尝试遍历一个数组并将今天之后的任务推送到另一个数组中。有人能告诉我我做错了什么吗? (task.reminderDate 是正确的类型,我在其他函数中使用它并且有效)
taskList.forEach((task) => {
if (dayjs().isAfter(dayjs(task.reminderDate))) {
missedFilter.push(task);
}
});
我认为您误解了 isAfter 的工作原理。
console.log(dayjs("2031-01-01").isAfter(dayjs())); //This returns true
目前您正在比较今天是否在提醒日期之后。所以您想更改日期的顺序:
if (dayjs(task.reminderDate).isAfter(dayjs()))
现在你正在比较 reminderDate 是否晚于今天的日期
你的描述没有描述你在做什么,但我不确定哪个是错误的:
这是在测试“今天”是否晚于 (task.reminderDate)
所以,输出应该是数组“missedFilter”应该填满提醒日期早于今天的任务。
这似乎是一件合理的事情,但您声明要将今天之后的任务推送到一个数组中。
我认为您的实际代码没有任何问题,但您打算执行的操作的语义可能有问题。
例如如果你真的想要在未来有一个 reminderDate 的任务,你应该反转代码:
var today = dayjs();
taskList.forEach((task) -> {
if (dayjs(task.reminderDate).isAfter(today))) {
missedFilter.push(task);
}
});
(另请注意,将 dayjs 初始化程序推到循环之外。效率较低,但也有助于清晰。)