以下脚本的方案失败:开始日期09/12/2009结束日期10/15/2009。日期差异不超过90天,但仍然失败。任何人都可以帮忙吗?
var startDate = new Date(document.getElementById('ctl00$MainContent$FromYearTxt').value);
var endDate = new Date(document.getElementById('ctl00$MainContent$ToYearTxt').value);
var monthsDiff = endDate.getMonth() - startDate.getMonth();
var durationLimit = 0;
for (i = 1; i <= monthsDiff; i++) {
durationLimit += new Date(startDate.getFullYear(), startDate.getMonth() + i, 0).getDate();
}
var timeDiff = endDate.getTime() - startDate.getTime();
var daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24));
if (daysDiff > durationLimit) {
args.IsValid = false;
} else {
args.IsValid = true;
}
答案 0 :(得分:1)
如果您正在寻找3个月的验证,那么我认为更好的选择将是
function test() {
var args = {}; //creating for test
var startDate = new Date(document.getElementById('ctl00$MainContent$FromYearTxt').value);
var endDate = new Date(document.getElementById('ctl00$MainContent$ToYearTxt').value);
var maxDate = new Date(startDate);
maxDate.setMonth(maxDate.getMonth() + 3);
args.IsValid = endDate.getTime() <= maxDate.getTime();
document.getElementById('result').innerHTML = JSON.stringify(args)
}
<input id="ctl00$MainContent$FromYearTxt" value="03/13/2009" />
<input id="ctl00$MainContent$ToYearTxt" value="06/13/2009" />
<button onclick="test()">Test</button>
<div id="result"></div>