在javascript中用天计算月份

时间:2013-09-13 08:33:13

标签: javascript validation date javascript-framework extjs4.2

我想用javascript计算月数和天数。

我的要求就像我的日期范围将在24个月内。

我的todate来自2012年9月24日的某个地方

现在,

如果我从2012年9月31日开始输入todate,则会显示错误消息。

目前我正在做那个

todate.getMonth() - fromdate.getMonth() + (12 * (todate.getFullYear() - fromdate.getFullYear()))

但是, 如果我从2012年9月23日起进入日期和2012年9月24日,它也应该显示错误消息..

但是,它允许我那个日期......这是超过日期24个月..所以,我怎样才能计算月份的日期不允许我上面给出的日期。

谢谢

2 个答案:

答案 0 :(得分:1)

你的问题是,当它是相隔两年的同一个月时,你还需要检查一个月的那一天。

function isValidDate (from, to) {
  var months = to.getMonth() - from.getMonth() + 
              (12 * (to.getFullYear() - from.getFullYear()));
  return months < 24 || months === 24 && to.getDate() < from.getDate();
}

答案 1 :(得分:1)

试试这个来获得天数


function finddays(date_from, date_to) 
{return Math.round(Math.abs(new Date(date_from).getTime() - new Date(date_to).getTime())/(1000 * 60 * 60 * 24))}

使用:

  

finddays(“2010年9月23日”,“2010年9月25日”);

<强>更新

不推荐但效果更好
试试这个数月(希望一个月30天,容易出错+ -3 /年)


 function findMonths(date_from, date_to) 
    {return Math.round((new Date(date_to).getTime()-new Date(date_from).getTime())/(1000 * 60 * 60 * 24*30))}

使用:

  

findMonths(“2010年9月23日”,“2010年10月25日”);