📜  排序日期 - Javascript (1)

📅  最后修改于: 2023-12-03 15:25:55.883000             🧑  作者: Mango

排序日期 - JavaScript

在JavaScript中,排序日期有两种常见的方法:一种是通过字符串之间的比较来排序,另一种是通过时间戳的比较来排序。下面我们将会介绍这两种方法。

通过字符串比较排序日期

首先,我们需要将日期转换成字符串以便进行比较。这里我们使用toISOString()方法将一个日期对象转换成ISO标准格式的字符串。然后,我们可以使用localeCompare()方法来比较两个日期字符串:

const dates = [
  new Date('2022-03-15T00:00:00.000Z'),
  new Date('2022-03-14T00:00:00.000Z'),
  new Date('2022-03-16T00:00:00.000Z')
];

var sortedDates = dates.map(date => date.toISOString()).sort((a, b) => a.localeCompare(b));

console.log(sortedDates);
// ["2022-03-14T00:00:00.000Z", "2022-03-15T00:00:00.000Z", "2022-03-16T00:00:00.000Z"]

在这个例子中,我们定义了一个日期数组,使用map()方法将其中的每个日期对象转换成字符串。然后使用sort()方法并传入一个比较函数,使用localeCompare()方法进行比较,最终得到一个按照日期排序的字符串数组。

通过时间戳比较排序日期

另一种比较日期的方法是使用时间戳。时间戳是一个自1970年1月1日0时0分0秒以来的毫秒数。我们可以使用getTime()方法获取一个日期对象的时间戳。然后使用sort()方法传入一个比较函数来对日期进行排序:

const dates = [
  new Date('2022-03-15T00:00:00.000Z'),
  new Date('2022-03-14T00:00:00.000Z'),
  new Date('2022-03-16T00:00:00.000Z')
];

var sortedDates = dates.sort((a, b) => a.getTime() - b.getTime());

console.log(sortedDates);
// [Tue Mar 15 2022 00:00:00 GMT+0000 (Coordinated Universal Time), Mon Mar 14 2022 00:00:00 GMT+0000 (Coordinated Universal Time), Wed Mar 16 2022 00:00:00 GMT+0000 (Coordinated Universal Time)]

在这个例子中,我们使用sort()方法并传入一个比较函数,使用getTime()方法来获取时间戳,并将日期对象按照时间戳升序排序,最终得到一个按照日期排序的日期对象数组。

无论是哪种方法,我们可以根据需要将结果转换成特定的格式。在这里,我们仅仅对JavaScript中排序日期的两种方法做了介绍。在实际运用中,需要根据具体场景去选择合适的方法。