Bootstrap datetimepicker: 不能 select "tomorrow" 作为日期

Bootstrap datetimepicker: can't select "tomorrow" as date

让我们以这个最小的例子为例:

<div class="row">
<div class="col-md-12">
     <h6>datetimepicker1</h6>

    <div class="form-group">
        <div class="input-group date" id="datetimepicker">
            <input type="text" class="form-control" />  <span class="input-group-addon"><span class="glyphicon-calendar glyphicon"></span></span>
        </div>
    </div>
</div>
</div>

而JS代码是:

var m = moment(new Date());

$('#datetimepicker').datetimepicker({
    minDate: m.add(1, 'days'),
    ignoreReadonly: true,
    format: 'DD/MM/YYYY',
    allowInputToggle: true,
    defaultDate: false,
    useCurrent: false
});

我们正在使用 moment.js 获取今天的日期,然后设置日期时间选择器,以便您只能 select 从明天开始的日期。

jsFiddle 在这里:http://jsfiddle.net/0Ltv25o8/1794/

我们遇到的问题是,尽管进行了上述设置,用户仍无法将 select 明天作为日期。它没有变灰,但您尝试 select 它并没有任何反应。这是为什么?

只需将 m.add(1, 'days') 替换为 moment(),如下所示

$('#datetimepicker').datetimepicker({
    minDate: moment(),
    ignoreReadonly: true,
    format: 'DD/MM/YYYY',
    allowInputToggle: true,
    defaultDate: false,
    useCurrent: false
});

Demo

更新:今天是灰色的。

$('#datetimepicker').datetimepicker({
    minDate: moment(new Date()).add(1, 'days').startOf('day'),
    ignoreReadonly: true,
    format: 'DD/MM/YYYY',
    allowInputToggle: true,
    defaultDate: false,
    useCurrent: false
});

Demo

问题出在日期的时间部分。您的 minDate 实际上设置为明天和第二天之间的时间点。

只需删除时间部分即可解决您的问题(使用 moment.js 的 startOf)。

var m = moment(new Date());

$('#datetimepicker').datetimepicker({
    minDate: m.add(1, 'days').startOf('day'),
    ignoreReadonly: true,
    format: 'DD/MM/YYYY',
    allowInputToggle: true,
    defaultDate: false,
    useCurrent: false
});