我想用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个月..所以,我怎样才能计算月份的日期不允许我上面给出的日期。
谢谢
答案 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日”);