Bootstrap datetimepicker:无法选择"明天"作为日期

时间:2015-09-08 11:34:56

标签: javascript momentjs bootstrap-datetimepicker

让我们举一个最小的例子:

<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获取今天的日期,然后设置datetimepicker,以便您只能从明天开始选择日期。

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

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

2 个答案:

答案 0 :(得分:3)

只需将let array = Array(results) // la fin 替换为m.add(1, 'days'),如下所示

moment()

Demo

更新:今天是灰色的。

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

Demo

答案 1 :(得分:1)

问题是日期的时间部分。您的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
});