JavaScript无效时,日期差异大于90天

时间:2015-06-25 06:42:27

标签: javascript date

以下脚本的方案失败:开始日期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;
        }

1 个答案:

答案 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>