📌  相关文章
📜  如何使用 JavaScript 在数组中选择最小最大日期?(1)

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

如何使用 JavaScript 在数组中选择最小最大日期?

在 JavaScript 中,我们可以使用 Math.min()Math.max() 方法来选择数组中的最小和最大值。下面我们将通过几个例子来演示如何在数组中选择最小和最大日期。

示例1: 选择最小日期

假设我们有一个日期数组如下:

const dates = ["2021-01-01", "2021-01-02", "2021-01-03", "2020-12-31", "2021-01-04"];

我们可以使用 Math.min() 方法和 new Date() 构造函数来选择其中的最小日期,代码如下:

const minDate = new Date(Math.min(...dates.map(d => new Date(d))));
console.log(minDate);

上述代码中,我们使用了 ES6 中的扩展运算符 ... 来将数组转换成参数序列,然后通过 map() 方法将日期字符串转换成 Date 对象。最后,我们通过 Math.min() 方法选择其中的最小值,并将其转换成 Date 对象。

运行上述代码,我们得到的输出结果为:

Fri Dec 31 2020 00:00:00 GMT+0800 (中国标准时间)
示例2: 选择最大日期

同样地,我们也可以使用 Math.max() 方法和 new Date() 构造函数来选择数组中的最大日期,代码如下:

const maxDate = new Date(Math.max(...dates.map(d => new Date(d))));
console.log(maxDate);

上述代码中,我们仅仅是将前面的 Math.min() 改成了 Math.max()。运行上述代码,我们得到的输出结果为:

Mon Jan 04 2021 00:00:00 GMT+0800 (中国标准时间)
示例3: 混合日期数组的选择

在实际开发中,我们有可能会遇到混合了日期和时间的数组,甚至混合了日期和时间的格式,例如:

const mixedDates = ["2021-01-01T09:30:00", "2021-01-02T15:45:00", "2021-01-03T23:00:00", "2020-12-31T05:20:00", "2021-01-04T12:00:00"];

为了选择其中的最小日期和最大日期,我们需要对前面的代码稍加修改:

const minDate2 = new Date(Math.min(...mixedDates.map(d => new Date(d))));
const maxDate2 = new Date(Math.max(...mixedDates.map(d => new Date(d))));
console.log(minDate2, maxDate2);

上述代码中,我们仍然是先将日期字符串转换成 Date 对象,但此时的日期字符串可能包括了时间信息,因此需要使用 map() 方法来进行转换。运行上述代码,我们得到的输出结果为:

Thu Dec 31 2020 05:20:00 GMT+0800 (中国标准时间) Tue Jan 05 2021 00:00:00 GMT+0800 (中国标准时间)

从上面的输出结果可以看出,我们已经成功地选择了混合日期数组中的最小日期和最大日期。