【发布时间】:2017-01-11 10:58:21
【问题描述】:
我在使用 JS 函数时遇到问题。 我从这里得到了这个 JS 代码 Difference between two dates in years, months, days in JavaScript
月份工作正常,但是当我尝试调用似乎无法正常工作的日子时,它会显示 30 天,而应该是 24 天。有人能看出代码有什么问题吗?
function monthDiff(d1, d2) {
var months;
months = (d2.getFullYear() - d1.getFullYear()) * 12;
months -= d1.getMonth() + 1;
months += d2.getMonth();
return months <= 0 ? 0 : months;
}
function daysInMonth(date) {
return new Date(date.getYear(), date.getMonth() + 1, 0).getDate();
}
function diffDate(date1, date2) {
if (date2 && date2.getTime() && !isNaN(date2.getTime())) {
var months = monthDiff(d1, d2);
var days = 0;
if (date1.getUTCDate() >= date2.getUTCDate()) {
days = date1.getUTCDate() - date2.getUTCDate();
}
else {
months--;
days = date1.getUTCDate() - date2.getUTCDate() + daysInMonth(date2);
}
// Use the variables months and days how you need them.
}
}
这是使用函数的 var
var months = monthDiff(new Date(), options.timestamp ) % 12 + 1,
days = daysInMonth(new Date()),
【问题讨论】:
-
我认为我应该使用 diffDate 而不是 daysInMonth 但是当我这样做时它只会显示 0
标签: javascript