Given an array of JavaScript date. The task is to get the minimum and maximum date of the array using JavaScript.
Below are the following approaches:
Table of Content
Approach 1: Using Math.max.apply() and Math.min.apply() Methods
- Get the JavaScript dates in an array.
- Use Math.max.apply() and Math.min.apply() function to get the maximum and minimum dates respectively.
Example: In this example, the maximum and minimum date is determined by the above approach.
Javascript
let dates = []; dates.push( new Date( "2019/06/25" ));
dates.push( new Date( "2019/06/26" ));
dates.push( new Date( "2019/06/27" ));
dates.push( new Date( "2019/06/28" ));
function GFG_Fun() {
let maximumDate = new Date(Math.max.apply( null , dates));
let minimumDate = new Date(Math.min.apply( null , dates));
console.log( "Max date is - " + maximumDate);
console.log( "Min date is - " + minimumDate);
} GFG_Fun(); |
Output
Max date is - Fri Jun 28 2019 00:00:00 GMT+0000 (Coordinated Universal Time) Min date is - Tue Jun 25 2019 00:00:00 GMT+0000 (Coordinated Universal Time)
Approach 2: Using reduce() method
- Get the JavaScript dates in an array.
- Use reduce() method in an array of dates and define the respective function for the maximum and minimum dates.
Example: In this example, the maximum and minimum date is determined by the above approach.
Javascript
let dates = []; dates.push( new Date( "2019/06/25" ));
dates.push( new Date( "2019/06/26" ));
dates.push( new Date( "2019/06/27" ));
dates.push( new Date( "2019/06/28" ));
function GFG_Fun() {
let mnDate = dates.reduce( function (a, b) {
return a < b ? a : b;
});
let mxDate = dates.reduce( function (a, b) {
return a > b ? a : b;
});
console.log( "Max date is - " + mxDate);
console.log( "Min date is - " + mnDate);
} GFG_Fun(); |
Output
Max date is - Fri Jun 28 2019 00:00:00 GMT+0000 (Coordinated Universal Time) Min date is - Tue Jun 25 2019 00:00:00 GMT+0000 (Coordinated Universal Time)
Approach 3: Using Spread Operator
Example: In this example, we are using sort() Method.
Javascript
let dates = [ new Date( '2022-01-01' ), new Date( '2022-03-15' ), new Date( '2022-02-10' )];
let minDate = new Date(Math.min(...dates));
let maxDate = new Date(Math.max(...dates));
console.log(minDate); console.log(maxDate); |
Output
2022-01-01T00:00:00.000Z 2022-03-15T00:00:00.000Z