使用JavaScript限制日期范围

时间:2011-04-22 12:18:38

标签: javascript date-range

有两个类型为text的输入字段,用于以mm / dd / yyy格式写入开始日期和结束日期。我需要一个JavaScript函数来检查这些输入日期之间的日期范围间隔是否超过14天。最长日期应为当前日期。是否有插件或快速解决方案?我尝试使用jQuery UI datepicker可以正常工作,但我有一个自定义的GetElementByClassName函数与jQuery冲突。

谢谢。

2 个答案:

答案 0 :(得分:2)

以下摘要应该会给你一些想法。

<script>
    var date1 = '01/14/2011';
    var date2 = '01/25/2011';

    // calculate the number of days between date1 and date2
    var daysBetween = new Date(date2).getTime() - new Date(date1).getTime();
    alert('days between = ' + daysBetween / 86400000);

    // check date3 against current date
    var now = new Date();
    var date3 = new Date('04/20/2011');
    if (date3 < now)
      alert('date3 is less than current date');

</script>

所以要组合成一个函数,你可以这样做:

<script>
    function checkDates(date1, date2) {
        // calculate the number of days between date1 and date2
        var daysBetween = (new Date(date2).getTime() - new Date(date1).getTime()) / 86400000;

        if (daysBetween > 14)
          return false;

        var now = new Date();
        if (date2 < now)
          return false;

        return true;

    }

答案 1 :(得分:0)

我解决了这个问题,我发现 focusout 功能是符合我要求的最佳解决方案。 jQuery代码:

$("#datefield").focusout(function () {
  date = $("#datefield").val();
  if (date > "2021-06-30" || date < "2020-07-01") {
    alert("Please enter a valid date.");
    $("#datefield").val("");
  }
});