bootstrap-datepicker from/to 范围按月

bootstrap-datepicker from/to range by month

我正在使用 https://github.com/eternicode/bootstrap-datepicker

我的表单由一个开始日期和一个结束日期输入组成 (#fromdate/#todate)。

两者的 minViewMode 都设置为月。

一旦开始日期被 select 编辑,用户应该能够 select 只能从 #fromdate 值加上一个月。

即。如果用户 select 的起始日期为 3 月,则只有 4 月及以后的时间应该 select 可以在截止日期 .datepicker 中显示。

在#fromdate 之前为#todate 禁用月份的处理方式如下:

$("#fromdate").datepicker({
minViewMode: 1
}).on('changeDate', function(ev){
    $("#todate").datepicker('setStartDate',ev.date);
});

我可能遗漏了一些明显的东西,但我似乎无法掌握 "adding" 1 个月的 setStartDate 方法。

您需要为用户设置endDate

The latest date that may be selected; all later dates will be disabled.

检查 bootstrap-datepicker http://bootstrap-datepicker.readthedocs.org/en/release/options.html#enddate

的文档

您需要设置minDate:

$("#fromdate").datepicker({
    minViewMode: 1
}).on('changeDate', function(ev){
    $("#todate").datepicker("option", "minDate",ev.date.setMonth(ev.date.getMonth() + 1));
});

我做了一个更完整的解决方案:

$("#eventEndDate").datepicker({
        minViewMode: 1
    }).on('changeDate', function (ev) {
        endtDate: ev.date.setMonth(ev.date.getMonth() - 1), $("#eventStartDate").datepicker('setEndDate', ev.date);
    });

    $("#eventStartDate").datepicker({
        minViewMode: 1
    }).on('changeDate', function (ev) {
        startDate: ev.date.setMonth(ev.date.getMonth() + 1), $("#eventEndDate").datepicker('setStartDate', ev.date);
    });