Angular: 查找最大日期

Angular: Find max date

我想查找并显示数据集中的最大日期。一些示例数据为 21/05/2021、01/04/2021、15/05/2021,结果应为 21/05/21。我正在尝试编写一个函数,但它不起作用。当我用 console.log 显示结果时,它被设置为 0。我不知道 this.maxDueDate 必须等于什么。

app.ts:

checkDueDate() {
  this.maxDueDate = 0
  if (this.depositTasks.length !== undefined) {
    for (let i = 0; this.depositTasks.length > i; i++) {
      if (this.maxDueDate < this.depositTasks[i].dueDate) {
        this.maxDueDate = this.depositTasks[i].dueDate
      }
    }
  }
}

您可以将日期转换为毫秒 新日期(d1).getTime() 现在您可以比较或从数组中找到最大值。 Math.max() 是一种方式,但还有很多方式。

let arr=['03/21/2021', '01/04/2021', '05/15/2021']
let data = arr.map(date=> new Date(date).getTime())
console.log(data)
let max = Math.max(...data)
console.log(new Date(max))

您可以通过排序直接获得最大日期。

this.maxDueDate = this.depositTasks.sort((a,b) => 
  new Date(b.dueDate).getTime() - new Date(a.dueDate).getTime())[0].dueDate;

排序函数 returns 一个包含 depositTask 对象的数组,根据它们的日期降序排列。因此,数组的第一个元素将是具有最大日期值的元素。