【问题标题】:Finding max and min dates using Moment().max and min not working使用 Moment().max 和 min 查找最大和最小日期不起作用
【发布时间】:2021-08-05 17:33:45
【问题描述】:

我有一个日期数组,想在一个数组中找到最大和最小日期。

这是我的代码:

let date_list = [
"2021-03-19T00:00:00Z", 
"2021-03-20T00:00:00Z", 
"2021-04-12T00:00:00Z", 
"2021-04-13T00:00:00Z",
"2021-04-11T00:00:00Z", 
"2021-04-12T00:00:00Z", 
"2021-03-18T00:00:00Z"
];

let uniq_dates = [...new Set(date_list.map(d => moment.utc(d).format()  ))];
console.log(uniq_dates);

console.log(moment().max(date_list));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous"></script>

我有时会收到一条错误消息,上面写着 NaN 或者我收到了 Deprecation warning: moment().max is deprecated, use moment.min instead.

如何在日期数组中获取最大值和最小值?

【问题讨论】:

    标签: javascript jquery arrays ecmascript-6 momentjs


    【解决方案1】:

    您可以使用此代码。

    let date_list = [
    "2021-03-19T00:00:00Z", 
    "2021-03-20T00:00:00Z", 
    "2021-04-12T00:00:00Z", 
    "2021-04-13T00:00:00Z",
    "2021-04-11T00:00:00Z", 
    "2021-04-12T00:00:00Z", 
    "2021-03-18T00:00:00Z"
    ];
    
    let moments = date_list.map(d => moment(d)),
    maxDate = moment.max(moments)
    
    console.log(maxDate);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous"></script>

    【讨论】:

      【解决方案2】:

      您可以将Array#reducemoment.max 结合使用。

      let date_list = [
      "2021-03-19T00:00:00Z", 
      "2021-03-20T00:00:00Z", 
      "2021-04-12T00:00:00Z", 
      "2021-04-13T00:00:00Z",
      "2021-04-11T00:00:00Z", 
      "2021-04-12T00:00:00Z", 
      "2021-03-18T00:00:00Z"
      ];
      
      let uniq_dates = [...new Set(date_list.map(d => moment.utc(d).format()  ))];
      console.log(uniq_dates);
      
      console.log(uniq_dates.reduce((acc,curr)=>acc.max(curr), moment()));
      .as-console-wrapper{max-height:100%!important;top:0}
      &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous"&gt;&lt;/script&gt;

      【讨论】:

        猜你喜欢
        • 2012-09-05
        • 1970-01-01
        • 2015-03-12
        • 2013-02-15
        • 1970-01-01
        • 2021-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多