【问题标题】:How to get the exact quantity of months between two dates?如何获得两个日期之间的确切月份数?
【发布时间】:2019-08-05 16:57:34
【问题描述】:

我正在尝试获取两个日期之间的月数

但由于某种原因,moment diff 方法有时会返回正确的数字,有时会出错(按一个月),(取决于我猜的日期)

        var estDate = "some date"; //2022-06-02
        estDate = estDate.toString();
        var estDateYear = estDate.substring(0,4);
        var estDateMonth = estDate.substring(4, 6);
        var estDateDay = estDate.substring(6, 8);

        estDate = estDateYear + '-' + estDateMonth + '-' + estDateDay;

        //first date
        estDate = moment(estDate);


        //actual date
        var date = moment();


        //DIFF
        var diff= date.diff(estDate, 'month'); 
        diff= diff.toString();

知道为什么会这样吗?

【问题讨论】:

    标签: javascript jquery date momentjs


    【解决方案1】:

    您应该将diff 方法中的第三个参数设置为true。这将返回一个月的小数部分而不是整数。然后,您可以根据需要四舍五入返回您想要的数字。

    var diff = Math.floor(date.diff(estDate, 'month', true));
    

    文档
    https://momentjs.com/docs/#/displaying/difference/
    By default, moment#diff will truncate the result to zero decimal places, returning an integer. If you want a floating point number, pass true as the third argument.

    【讨论】:

      【解决方案2】:

      为什么不首先使用moment 解析estDate 字符串?

      var estDate = "2022-06-02"; //2022-06-02
      estDate = moment(estDate, "YYYY-MM-DD");
      
      //actual date
      var date = moment();
      
      //DIFF
      var diff= date.diff(estDate, 'month'); 
      diff= diff.toString();
      

      【讨论】:

        【解决方案3】:

        // Simply use Momentjs Formation library
        
        //let estDate = "2022-06-02";
        let estDate = moment("2022-06-02", "YYYY-MM-DD");
        let actualdate = moment();
        let diff= actualdate.diff(estDate, 'M'); 
        diff= diff.toString();
        console.log(diff);
        <div>
         <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.min.js"></script>
        </div>

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多