Bootstrap datetimepicker 步进问题
Bootstrap datetimepicker stepping issue
我有两个链接的 Bootstrap 日期时间选择器。这是他们的代码:
var d = new Date();
var one_month = d.setMonth( d.getMonth( ) + 1 );
$(function () {
$('#pick1').datetimepicker({
locale: 'en',
sideBySide: true,
defaultDate: new Date(),
minDate: new Date(),
format: 'DD/MM/YYYY HH:mm',
stepping: 15
});
$('#pick2').datetimepicker({
locale: 'en',
sideBySide: true,
defaultDate: one_month,
minDate: new Date(),
format: 'DD/MM/YYYY HH:mm',
stepping: 15
});
$('#pick1').on('dp.change', function (e) {
$('#pick2').data('DateTimePicker').minDate(e.date);
});
$('#pick2').on('dp.change', function (e) {
$('#pick1').data('DateTimePicker').maxDate(e.date);
});
});
我遇到的问题是,根据现在的时间,其中一个选择器(通常 pick1
)不显示默认日期。
这里有一个jsFiddle来说明:
https://jsfiddle.net/6xbt5wa9/1/
(如果没问题,运行过几分钟再试一次)
我认为这个问题与 stepping
选项有关,这只是因为如果您将其注释掉,问题就解决了。
问题似乎也与踏步图的开头有关。所以,如果 stepping
设置为 15;第 15、16、17 分钟会有问题,但到了 30 分钟就不会了。我还没有验证这个假设得出结论,生命太短暂了。
有人可以帮忙吗?我错过了什么吗?
我刚刚 运行 解决了这个确切的问题,该问题已在插件上提出 GitHub Page 并且看起来这个错误仍未修复。
The reason why it happens is because the stepper rounds to the nearest
value. So sometimes this will mean rounding down to the nearest 15
which can be before minDate = moment()
.
Example: 11:18am will round down to 11:15am but this is before moment()
making it invalid.
This explanation is courtesy of the GitHub issue raiser.
问题提出者继续提供了一个 hacky 解决方法,我不确定它有多可靠。也许这个问题仍在解决中,但它是前一段时间提出的!
我想我会与大家分享这些信息(即使这是一个老问题!)因为没有人能对此提供很多帮助。
$(function () {
$('#pick1').datetimepicker({
locale: 'en',
sideBySide: true,
defaultDate: new Date(),
minDate: new Date(),
format: 'DD/MM/YYYY HH:mm',
stepping: 15
});
$('#pick2').datetimepicker({
locale: 'en',
sideBySide: true,
minDate: new Date(),
format: 'DD/MM/YYYY HH:mm',
stepping: 15
});
$('#pick1').on('dp.change', function (e) {
$('#pick2').data('DateTimePicker').minDate(e.date);
});
$('#pick2').on('dp.change', function (e) {
$('#pick1').data('DateTimePicker').maxDate(e.date);
});
});
我有两个链接的 Bootstrap 日期时间选择器。这是他们的代码:
var d = new Date();
var one_month = d.setMonth( d.getMonth( ) + 1 );
$(function () {
$('#pick1').datetimepicker({
locale: 'en',
sideBySide: true,
defaultDate: new Date(),
minDate: new Date(),
format: 'DD/MM/YYYY HH:mm',
stepping: 15
});
$('#pick2').datetimepicker({
locale: 'en',
sideBySide: true,
defaultDate: one_month,
minDate: new Date(),
format: 'DD/MM/YYYY HH:mm',
stepping: 15
});
$('#pick1').on('dp.change', function (e) {
$('#pick2').data('DateTimePicker').minDate(e.date);
});
$('#pick2').on('dp.change', function (e) {
$('#pick1').data('DateTimePicker').maxDate(e.date);
});
});
我遇到的问题是,根据现在的时间,其中一个选择器(通常 pick1
)不显示默认日期。
这里有一个jsFiddle来说明:
https://jsfiddle.net/6xbt5wa9/1/
(如果没问题,运行过几分钟再试一次)
我认为这个问题与 stepping
选项有关,这只是因为如果您将其注释掉,问题就解决了。
问题似乎也与踏步图的开头有关。所以,如果 stepping
设置为 15;第 15、16、17 分钟会有问题,但到了 30 分钟就不会了。我还没有验证这个假设得出结论,生命太短暂了。
有人可以帮忙吗?我错过了什么吗?
我刚刚 运行 解决了这个确切的问题,该问题已在插件上提出 GitHub Page 并且看起来这个错误仍未修复。
The reason why it happens is because the stepper rounds to the nearest value. So sometimes this will mean rounding down to the nearest 15 which can be before
minDate = moment()
.Example: 11:18am will round down to 11:15am but this is before
moment()
making it invalid.This explanation is courtesy of the GitHub issue raiser.
问题提出者继续提供了一个 hacky 解决方法,我不确定它有多可靠。也许这个问题仍在解决中,但它是前一段时间提出的!
我想我会与大家分享这些信息(即使这是一个老问题!)因为没有人能对此提供很多帮助。
$(function () {
$('#pick1').datetimepicker({
locale: 'en',
sideBySide: true,
defaultDate: new Date(),
minDate: new Date(),
format: 'DD/MM/YYYY HH:mm',
stepping: 15
});
$('#pick2').datetimepicker({
locale: 'en',
sideBySide: true,
minDate: new Date(),
format: 'DD/MM/YYYY HH:mm',
stepping: 15
});
$('#pick1').on('dp.change', function (e) {
$('#pick2').data('DateTimePicker').minDate(e.date);
});
$('#pick2').on('dp.change', function (e) {
$('#pick1').data('DateTimePicker').maxDate(e.date);
});
});