【问题标题】:Javascript - get 1 oldest date from array of datesJavascript - 从日期数组中获取 1 个最旧的日期
【发布时间】:2019-03-20 23:26:21
【问题描述】:

我有一个这种格式的数组。我只想提取 1 个最旧的日期。

这是数组中的值:

数组:

creationDate = ['2019 年 2 月 13 日星期三 21:14:55 GMT','2019 年 2 月 13 日星期三 21:19:42 GMT','2019 年 2 月 13 日星期三 21:28:29 GMT','2 月 13 日星期三:31:04 GMT 2019'];

这是我的代码:

代码:

        // this below code is not working as expected   
        if(creationDate){
            var orderedDates = creationDate.sort(function(a,b){
                return Date.parse(a) > Date.parse(b);
            }); 
        }

预期结果:

格林威治标准时间 2019 年 2 月 13 日星期三 21:14:55

【问题讨论】:

标签: javascript arrays date


【解决方案1】:

您想返回一个数字,而不是布尔值(所以使用 - 而不是 >):

var creationDate = ['Wed Feb 13 21:14:55 GMT 2019', 'Wed Feb 13 21:19:42 GMT 2019', 'Wed Feb 13 21:28:29 GMT 2019', 'Wed Feb 13 21:31:04 GMT 2019', 'Wed Feb 13 21:33:04 GMT 2019'];
var orderedDates = creationDate.sort(function(a, b) {
  return Date.parse(a) - Date.parse(b);
});
console.log(orderedDates[0]);

【讨论】:

    【解决方案2】:

    您可以使用Array.reduce() 并在每次迭代中比较日期并取最旧的日期:

    const creationDate = ['Wed Feb 13 21:14:55 GMT 2019','Wed Feb 13 21:19:42 GMT 2019','Wed Feb 13 21:28:29 GMT 2019','Wed Feb 13 21:31:04 GMT 2019'];
    
    const oldest = creationDate.reduce((c, n) => 
      Date.parse(n) < Date.parse(c) ? n : c
    );
    
    console.log(oldest);

    【讨论】:

      【解决方案3】:

      试试:

      if(creationDates){
        return creationDates.sort()[0]
      }
      

      【讨论】:

        猜你喜欢
        • 2019-09-13
        • 1970-01-01
        • 2011-05-23
        • 2020-02-05
        • 1970-01-01
        • 2020-01-06
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        相关资源
        最近更新 更多