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
});
更新:今天是灰色的。
$('#datetimepicker').datetimepicker({
minDate: moment(new Date()).add(1, 'days').startOf('day'),
ignoreReadonly: true,
format: 'DD/MM/YYYY',
allowInputToggle: true,
defaultDate: false,
useCurrent: false
});
问题出在日期的时间部分。您的 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
});
让我们以这个最小的例子为例:
<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
});
更新:今天是灰色的。
$('#datetimepicker').datetimepicker({
minDate: moment(new Date()).add(1, 'days').startOf('day'),
ignoreReadonly: true,
format: 'DD/MM/YYYY',
allowInputToggle: true,
defaultDate: false,
useCurrent: false
});
问题出在日期的时间部分。您的 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
});