使用 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 初始化程序推到循环之外。效率较低,但也有助于清晰。)