计算两个日期之间的月数。
let start = moment(latestDateAvailable.Date);
console.log("Start: ", start);
let end = moment(dateToGet);
console.log("End: ", end);
let duration = moment.duration(start.diff(end, 'months'));
let m = duration.asMonths();
console.log("Months: ", m);
我期待1,但结果是0?
答案 0 :(得分:0)
这就是应该如何运作的。 2月21日至3月3日之间的差异不是整整一个月 - 因为第二个日期必须是3月21日。
默认情况下,
moment#diff
会将结果截断为零小数位,返回一个整数。如果需要浮点数,请将true
作为第三个参数。
查看第三个参数设置为true
的内容:
var feb21 = moment([2018, 2, 21]),
mar03 = moment([2018, 3, 3]),
mar21 = moment([2018, 3, 21]);
console.log(mar03.diff(feb21, 'months', true)); // 0.41857
console.log(mar21.diff(feb21, 'months', true)); // 1
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment.min.js"></script>
文档仍在继续:
moment#diff
对月份和年份差异进行了一些特殊处理。它经过优化,可以确保相同日期的两个月总是相隔一个整数。1月15日至2月15日应该是1个月。
2月28日至3月28日应该是1个月。
任何更少的内容都会被截断为零。