如果使用Bootstrap Datetimepicker

时间:2017-10-23 13:05:08

标签: jquery bootstrap-datetimepicker eonasdan-datetimepicker

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

例如,今天是2017年10月23日,所以我可以选择今天和未来的任何日期。但是在这种情况下已经过去的日期很少(即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/

1 个答案:

答案 0 :(得分:2)

为此,您必须设置为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,这样不会出现问题。

  

我将Bootstrap 3.0.0版迁移到4.17.42后面临的这个问题

我建议您升级到最新版本4.17.47已经进行了一些修复