Daterangepicker无法点击旧日期

时间:2015-10-29 06:04:13

标签: javascript daterangepicker

我使用this JavaScript组件来选择日期范围,我在UI中遇到了问题。

enter image description here

正如您在图片中看到的那样,您可以选择左侧日历中的任何日期,我尝试做的是酒店预订系统。正确的日历可以完美地工作,而左边则没有。如何停用或使旧日期不可点击?这有什么问题吗?

HTML:

<input type="text" name="reservation" id="reservation" class="input-daterange form-control pull-right active">

初始化代码:

$('.input-daterange').daterangepicker({
      "opens": "right"
});

在我的php文件中,我可以用它验证它:

$reservation = explode("-", \Request::input('reservation'));
$from        = date('Y-m-d', strtotime($reservation[0]));
$to          = date('Y-m-d', strtotime($reservation[1]));

$now  = new DateTime("today");
$day1 = new DateTime($from);
$day2 = new DateTime($to);
$diff = date_diff($day1, $day2, true);
$days = $diff->format('%a');

if ($day1 > $day2 || $day1 < $now || $days == 0) {
    echo "invalid";
}

但是,如果我想直接在UI中执行该操作呢?

2 个答案:

答案 0 :(得分:1)

下面的代码可能会有效:

 var todayDate = new Date();
 var todayMin = new Date(todayDate.getFullYear(), todayDate.getMonth(), todayDate.getDate(), 0, 0, 0, 0);
 $('.input-daterange').daterangepicker({
    "opens": "right",
    "minDate": todayMin
 });

答案 1 :(得分:1)

您必须执行以下代码: -

  $(function() {
    $( "#from" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      numberOfMonths: 3,
      onClose: function( selectedDate ) {
        $( "#to" ).datepicker( "option", "minDate: 0", selectedDate );
      }
    });
    $( "#to" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      numberOfMonths: 3,
      onClose: function( selectedDate ) {
        $( "#from" ).datepicker( "option", "maxDate", selectedDate );
      }
    });
  });

它将生成限制日期范围。

$(".input-daterange").datepicker({dateFormat:'mm/dd/yy', minDate: new Date(2010,11,12) });

你也可以试试这个。