2 Bootstrap日期选择器:如何更改最短和最长日期

2 Bootstrap Datepickers: How to change min and max dates?

本文关键字:日期 何更改 Bootstrap 选择器      更新时间:2023-09-26

我的网页上有两个日期选择器:一个用于到达日期,另一个用于出发日期。

现在我想根据用户的选择设置最短和最长日期。

我想要实现的2个例子:

  1. 用户选择2015年3月29日作为到达->出发的最短日期设置因此
  2. 用户选择29.03.2015作为出发->到达的最大值相应地设置日期

目前我正在初始化日期选择器,如下所示:

        var startDate = "<?php echo date('d.m.Y'); ?>"; // Today
        $('#startDate.input-group.date').datepicker({
            format: "dd.mm.yyyy",
            language: "de",
            multidate: false,
            todayHighlight: true,
            startDate: startDate,
            weekStart: 1
        }).on('changeDate', function(e){ 
            changeDate(e);
        });
        $('#endDate.input-group.date').datepicker({
            format: "dd.mm.yyyy",
            language: "de",
            multidate: false,
            todayHighlight: true,
            startDate: startDate,
            weekStart: 1
        });

您注意到第一个日期选择器上的.on()函数。这是我目前尝试设置第二次的日期:

        function changeDate(e){
            $('#endDate.input-group.date').datepicker('setStartDate', e);
        }

然而,这给我留下了以下错误:

Uncaught TypeError:undefined不是函数:bootstrap datepicker.js:1493

有问题的线路是:

parts = date.match(/(['-+]'d+)([dmwy])/g)

你能告诉我我做错了什么,以及我如何才能达到上述效果吗?

如果您控制台日志更改如下:

.on('changeDate', function(e){ 
        console.log(e);
});

您将看到该事件返回一个事件对象;您应该尝试传递e.date之类的内容(但一定要根据startDate格式对字符串进行相应的格式化)。

以下是有关附加到事件对象的额外数据的详细信息:http://bootstrap-datepicker.readthedocs.org/en/latest/events.html