2

I have question regarding date comparison in javascript. I want to find max date out of three datetime variables.

Like, i can find max date in c# linq using following short way

maxDate= new[] {p1.Date, p2.Date, p3.Date}.Max();

Does javascript has such nice way to do that?

simbada
  • 940
  • 4
  • 24
  • 43

2 Answers2

4

You can just use Math.max, like this:

var d1 = new Date();
var d2 = new Date();
var d3 = new Date();

var max = Math.max(d1, d2, d3);

// Will give you the max Date
console.log(new Date(max));
Damien Fayol
  • 958
  • 7
  • 17
  • `.getTime()` is not needed... `var d1 = new Date(); var d2 = new Date(); var d3 = new Date(); var max = Math.max(d1, d2, d3); console.log(max);` – Rayon Mar 18 '16 at 08:07
  • This seems very nice solution. let me try. – simbada Mar 18 '16 at 08:15
0

You can use sort method of js array to find min & max date

/* In ascending order*/
        function sortDates(a, b)
    {
        return a.getTime() - b.getTime();
    }  



/* in descending order.max & min value will be different
    function sortDates(a, b)
    {
        return b.getTime() - b.getTime();
    } */

var dates = [];

dates.push(new Date("03/18/2016"))
dates.push(new Date("03/18/2015"))
dates.push(new Date("03/18/2017"))
dates.push(new Date("03/18/2018"))

var sortedArray  = dates.sort(sortDates);
var minDate = sortedArray [0];
var maxDate = sortedArray [sortedArray .length-1];
console.log(minDate , maxDate);

jsfiddle

brk
  • 48,835
  • 10
  • 56
  • 78