JavaScript计算两个日期之间的年份和月份 [英] JavaScript Calc Year and Month between 2 Dates

查看:891
本文介绍了JavaScript计算两个日期之间的年份和月份的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能重复:

如何获取JavaScript中的两个日期之间的区别?


我想知道JavaScript可以计算两个日期之间的年份和月份。所以例如在26/10/2012和26/11/2013之间,有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; 


解决方案

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

  var month_diff =(d2.getFullYear() -  d1.getFullYear())* 12 + d2.getMonth() -  d1.getMonth(); 
var years = floor(month_diff / 12);
var month = month_diff%12;
alert(年+'年和'+月+'月份);

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

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

Possible Duplicate:
How do I get the difference between two Dates in JavaScript?

I wanted to know how javascript can count the years and months between two dates. So for example between 26/10/2012 and 26/11/2013, there are 1 year and 1 month

I have tried it so but it is wrong :(

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;

解决方案

Assuming two dates, d1 and d2, where d2 is the greater of the two:

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 your requirement is only to count full months you could add the following after the first line:

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

这篇关于JavaScript计算两个日期之间的年份和月份的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆