【问题标题】:Date range restriction with JavaScriptJavaScript 的日期范围限制
【发布时间】:2011-08-10 22:49:36
【问题描述】:

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

谢谢。

【问题讨论】:

  • 为什么不在第二个文本框中自动显示日期加上+14这样就没有必要检查了

标签: javascript date-range


【解决方案1】:

下面的sn-ps应该会给你一些想法。

<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;

    }

【讨论】:

    【解决方案2】:

    我解决了这个问题,我发现 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("");
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      相关资源
      最近更新 更多