1

我想用javascript中的天数计算月份。

我有要求,例如我的日期范围将在 24 个月内。

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

现在,

如果我在 from date 和 24 Sep 2012 in 中输入 31 Aug 2010 todate,它会显示一条错误消息。

目前我正在这样做

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

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

但是,它允许我那个日期..比日期晚 24 个月..所以,我如何计算不允许我上面给定日期的日期的月份。

谢谢

4

2 回答 2

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();
}
于 2013-09-13T08:44:14.550 回答
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 日");

于 2013-09-13T08:51:34.930 回答