简体   繁体   English

数组中日期的最小/最大

[英]Min/Max of dates in an array

 var expenseDates = ["2018-02-06","2018-11-08","2018-11-10","2017-05-02","2017-05-02","2018-11-01"]; var sorted = expenseDates.slice() .sort(function(a, b) { return new Date(a) - new Date(b); }); console.log(sorted.pop()+ '--max'); console.log(sorted.shift()+ '--min'); 

You don't have convert it into date object as the date are in YYYY-MM-DD format which itself is in sorted order by year => month => day . 您没有将其转换为date对象,因为日期采用YYYY-MM-DD格式,其本身按year => month => day排序。 So you just have to compare the input string as localCompare . 因此,您只需要比较输入字符串与localCompare First index is minimum date while the last index is maximum date 第一个索引是最小日期,而最后一个索引是最大日期

var expenseDates = ["2018-02-06","2018-11-08","2018-11-10","2017-05-02","2017-05-02","2018-11-01"];

    expenseDates = expenseDates.sort(function(a, b) {
        return a.localeCompare(b);
    });

   console.log('--min => ',expenseDates[0]);
   console.log('--max => ', expenseDates[expenseDates.length -1]);

Working jsFiddle demo - https://jsfiddle.net/rpdon5cm/1/ 工作的jsfiddle演示- https://jsfiddle.net/rpdon5cm/1/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM