代码之家  ›  专栏  ›  技术社区  ›  Mr world wide

数组中日期的最小值/最大值

  •  0
  • Mr world wide  · 技术社区  · 7 年前

    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');
    1 回复  |  直到 7 年前
        1
  •  2
  •   front_end_dev    7 年前

    您不必将其转换为日期对象,因为日期在 YYYY-MM-DD 按顺序排列的格式 year => month => day localCompare . 第一个索引是最短日期,而最后一个索引是最长日期

    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]);
    

    使用jsFiddle演示- https://jsfiddle.net/rpdon5cm/1/