如果使用 Bootstrap Datetimepicker 将 minDate 属性 设置为 moment(),则无法将旧日期设置为当前日期

Not able to set older date then current if minDate property is set to moment() using Bootstrap Datetimepicker

我的要求是我不想让用户从日期选择器中 select 过去的日期(这是使用 minDate: moment() 完成的)。但我必须在文本框和日期选择器下拉列表中显示过去的日期。

例如,今天是 2017 年 10 月 23 日,所以我可以 select 从今天和未来的任何日期。但是在这种情况下,已经过去的日期很少(即 2017 年 3 月 3 日、2016 年 11 月 12 日)这些日期未显示在文本框中,由于 minDate: moment() 自动清除功能已设置。如果我删除这个 属性 那么我就可以显示那个日期 .

我在 将 Bootstrap 版本 3.0.0 迁移到 4.17.42 后遇到了这个问题。 以下是代码:

$('#datepicker').datetimepicker({
        format: 'YYYY/MM/DD',
        ignoreReadonly: true,
        defaultDate: moment(GetCurrentDate(), "DD-MM-YYYY"),
        minDate: moment()           //set a minimum date
});

使用此 DateTimePicker:http://eonasdan.github.io/bootstrap-datetimepicker/

为此,您必须设置选项 keepInvalid: true,因为默认情况下 keepInvalid 为 false,这样 minDate 选项就不会覆盖之前的日期。

这样,选择器上之前的任何日期都应该保留在那里。

因此您的代码应如下所示:

$('#datepicker').datetimepicker({
    format: 'YYYY/MM/DD',
    ignoreReadonly: true,
    defaultDate: moment(GetCurrentDate(), "DD-MM-YYYY"),
    minDate: moment(),           //set a minimum date
    keepInvalid: true,
});

现在,如果您不使用 minDate 选项,您必须设置 useCurrent: false 这样就不会出现问题。

This issue i was facing after migrating Bootstrap Version 3.0.0 to 4.17.42

我建议你升级到最新版本4.17.47已经做了一些修复