JQuery DatePicker - 排除动态范围的日期

时间:2015-07-01 12:18:53

标签: jquery datepicker

我使用以下功能,但希望从我的日期选择器中排除最后20天

所以用户可以: -

选择明年的任何未来日期

可以选择超过20-365天前的任何日期

但可能不会选择今天和20天之前的日期。

我不确定如何排除过去20天,感谢任何帮助。

  $(function () {

      $("#datepicker").datepicker({ 

    dateFormat: "dd/mm/yy",
    maxDate: '365',
    minDate: '-365'
});

  });

2 个答案:

答案 0 :(得分:0)

日期选择器的beforeShowDay方法允许您运行函数,如果您不希望选择日期,则返回false。

请参阅此处的API文档:http://api.jqueryui.com/datepicker/#option-beforeShowDay

$(function () {

  $("#datepicker").datepicker({ 
    dateFormat: "dd/mm/yy",
    maxDate: '365',
    minDate: '-365',
    beforeShowDay: function(date){
      //Get current timestamp
      var current = new Date().getTime();
      //Get timestamp for 20 days ago
      var timestamp = current - (20 * 24 * 60 * 60 * 1000);
      return [!(date.getTime() > timestamp && date.getTime() < current)];
    }
  });

});

因此,上述代码应允许用户在365天前和365天之间选择日期,不包括前20天。

JsFiddle:https://jsfiddle.net/aka1s8p0/

答案 1 :(得分:0)

您可以执行这样的简单解决方案,并且可以为.datepicker添加更多属性

&#13;
&#13;
$(function () {
            var someDate = new Date();
            var dd = someDate.getDate() + 20;
            var mm = someDate.getMonth() + 1;
            var y = someDate.getFullYear();

            var someFormattedDate = y + ',' + mm + '/' + dd;
            $("#datepicker").datepicker({
                inline: true,
                minDate: new Date(someFormattedDate)
            });
        });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

    <p>Date: <input type="text" id="datepicker"></p>
&#13;
&#13;
&#13;