【问题标题】:get months difference between two dates javascript获取两个日期之间的月份差javascript
【发布时间】:2021-05-30 15:13:53
【问题描述】:

我正在尝试比较两个日期并获取它们之间存在的月数,为此它使用 moment 库,我得到如下信息:

var date1 = moment('2021-05-30');
var date2 = moment('2021-06-30');
var result = date2.diff(date1, 'months');
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

然而,在我的商业模式中,并不总是有这样的确切日期:'2021-05-30' to '2021-06-30' 此外,在 '2021-06-1' to '2021-06-15'15 days 分开的情况下,我已经希望它需要 1 个月,即使有正好没有 30 天的差异,或者如果我的日期 '2021-06-1' to '2021-07-15' 大约是 45 天,我已经花了大约 2 个月的时间,那么我该如何控制呢?有任何想法吗?不管是moment还是其他的library都没有关系,希望你的帮助非常感谢

【问题讨论】:

  • 2021-01-012021-02-02 的时间间隔是多少,即 33 天?

标签: javascript momentjs


【解决方案1】:

您可以将第三个参数传递给 diff 函数。

var 结果 = date2.diff(date1, 'months', true);

这将返回十进制的结果。然后你可以使用 Math.ceil 函数来得到想要的结果。

var 结果 = Math.ceil(date2.diff(date1, 'months', true));

【讨论】:

  • 但这将返回2,时间间隔从2021-01-012021-02-02。这可能不是故意的……Math.round() 可能会更好地满足期望
  • 没错,我想要大约 15 天或 2 周的时间差,这样的话,我会再考虑一个月
猜你喜欢
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-20
  • 2013-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多