允许datepicker仅从开始日期起两周内选择值

时间:2012-03-07 01:12:11

标签: php jquery jquery-ui-datepicker

<script type="text/javascript">
$(function() {
   $('#downpayment_date').datepicker({
       dateFormat: 'm/d/yy', minDate: new Date(<?php echo $this->y;?>, <?php echo (($this->m) - 1);?>, <?php echo ($this->d);?>),
       beforeShowDay: $.datepicker.noWeekends
   });
});
</script>

好的,我有这个日期选择器,允许基于在PHP中动态检索的值开始日期。

是否可以将日期选择限制在距离开始日期仅两周。

.i.e如果上述日期选择器中的开始日期从2012年12月8日开始,则datepicker应该允许我仅选择距该日期最多两周的日期。

      $('#downpayment_date').datepicker({
           dateFormat: 'm/d/yy', minDate: new Date(<?php echo $this->y;?>, <?php echo (($this->m) - 1);?>, <?php echo ($this->d);?>),
           maxDate:new Date(<?php echo $this->y;?>, <?php echo (($this->m) - 1);?>, <?php echo ($this->d)+14;?>),
           beforeShowDay: $.datepicker.noWeekends
       });

3 个答案:

答案 0 :(得分:1)

最简单的事情可能是传递PHP日期,只需添加14天就可以了:

var start = '08/12/2012';
var dateArray = start.split('/');
$('#date').datepicker({
    minDate: new Date(dateArray[2],dateArray[0]-1, dateArray[1], 0, 0, 0, 0),
    maxDate: new Date(dateArray[2],dateArray[0]-1, parseInt(dateArray[1])+14, 0, 0, 0, 0)
});

这可以处理几个月和几年的日期。这是 jsFiddle example 。因此,不像上面那样对开始日期进行硬编码,而是按照您的说法回复PHP日期。

答案 1 :(得分:0)

使用日期选择器中的maxDate属性并将其设置为minDate + 14

答案 2 :(得分:0)

$(document).ready(function() {
    var MyMaxDate = $("#date" ).datepicker( "option", "minDate" );
    $( "#date" ).datepicker({ minDate: new Date(<?php echo $y;?>, <?php echo ($m - 1);?>, <?php echo $d;?>),maxDate: MyMaxDate +14, beforeShowDay: $.datepicker.noWeekends });
});

实际上我发现上面的方法更高效,更快。