我搜索了一下,但找不到任何类似的帖子。也许我不知道如何搜索它。 我试图计算几个月,但是当日期是从1/1到31/1时,它返回0.我想到了一个解决方案,但还有其他方法吗?
有问题的代码。
function monthDiff(d1, d2) {
var months;
months = (d2.getFullYear() - d1.getFullYear()) * 12;
months -= d1.getMonth();
months += d2.getMonth();
return months <= 0 ? 0 : months;
}
答案 0 :(得分:1)
解决方案是将日期添加到日期2,以便进入下个月。
function monthDiff(d1, d2) {
var months;
months = (d2.getFullYear() - d1.getFullYear()) * 12;
d2.setDate(d2.getDate()+1);
months -= d1.getMonth();
months += d2.getMonth();
return months <= 0 ? 0 : months;
}
答案 1 :(得分:1)
它将返回0,因为它是同一个月。除非存在月份差异,否则不会返回1.
1月1日是1月30日的同一个月。