两个日期之间的JavaScript计算年份和月份

时间:2012-10-26 12:05:36

标签: javascript date

  

可能重复:
  How do I get the difference between two Dates in JavaScript?

我想知道javascript如何计算两个日期之间的年份和月份。例如,在2012年10月26日至2013年11月26日期间,有1年零1个月

我已经尝试过但是错了:(

var diff =  (new Date(y, m - 1, d).getTime(2011,(11-1),26) - new Date(2012, (11-1), 26).getTime()) / 1000 / 60 / 60 / 24 / 30;

1 个答案:

答案 0 :(得分:3)

假设有两个日期d1d2,其中d2是两者中的较大者:

var month_diff = (d2.getFullYear() - d1.getFullYear()) * 12 + d2.getMonth() - d1.getMonth();
var years = floor(month_diff / 12);
var months = month_diff % 12;
alert(years + 'years and ' + months + ' months');

如果您的要求仅计入整月,您可以在第一行后添加以下内容:

if (d2.getDate() - d1.getDate() < 0 && month_diff > 0) {
   month_diff--;
}