Bootstrap-datepicker如何限制所选开始日期之间的愤怒?

时间:2016-06-01 15:03:21

标签: jquery twitter-bootstrap datepicker

我在项目中使用bootstrap-datepicker,一切都运行良好。

我将startDate设置为+7天,将endDate设置为+18m,因为可以选择的最早日期是距离当前日期的7天,并且最长的开始日期可以选择是从当前日期起18个月:

$('.input-daterange').datepicker({
    'todayHighlight': true,
    'toggleActive': true,
    'startDate': '+7d',
    'endDate': '+18m',
    'autoclose': true
});

一切都很完美,我想限制选定的开始日期和结束日期2天之间的愤怒,我不知道如何实现这一目标。

例如,如果我选择2016年6月1日的开始日期,则最终结束日期为06/03/2016。即使我选择了从现在起六个月的开始日期,我也只希望结束日期为所选开始日期的+2天。

我一直在试验maxViewModestartDate,但我相信我需要设置startDateendDate属性,就像我现在拥有它们一样。

我感谢任何建议!

1 个答案:

答案 0 :(得分:0)

这是我想出的。我将当前日期的默认开始日期设置为+7天。用户只能选择距离当前日期+18个月的结束日期。用户可以选择任何开始日期,但结束日期的日期仅为开始日期的+2天。

<强> HTML

<input type="text" class="input-sm form-control from-date" name="start" id="my-id-one" data-id="1"/>
<span class="input-group-addon">through</span>
<input type="text" class="input-sm form-control to-date" name="end" id="my-id-two" data-id="2"/>

<强> jquery的

$('.from-date').datepicker({ // Start Date
    'autoclose': true,
    'startDate': '+7d',
    'endDate': '+18m',
}).on('changeDate', function (selected) {
    var startDate = new Date(selected.date.valueOf());
    var rangeDate = new Date(selected.date.getTime() + (2 * 24 * 60 * 60 * 1000));

    $('.to-date').datepicker('setStartDate', startDate).datepicker('setEndDate', rangeDate);
}).on('clearDate', function (selected) {
    $('.to-date').datepicker('setStartDate', null);
});

$('.to-date').datepicker({ // End Date
    'autoclose': true,
}).on('changeDate', function (selected) {
    var endDate = new Date(selected.date.valueOf());
    $('.from-date').datepicker('setEndDate', endDate);
}).on('clearDate', function (selected) {
    $('.from-date').datepicker('setEndDate', null);
});
相关问题