【问题标题】:Bootstrap datetimepicker stepping issue引导 datetimepicker 步进问题
【发布时间】:2023-03-18 04:16:01
【问题描述】:

我有两个链接的 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 分钟则不会。我还没有测试这个假设得出结论,生命太短暂了。

有人可以帮忙吗?我错过了什么吗?

【问题讨论】:

  • 我也遇到了同样的问题,你解决了吗?
  • 不,很抱歉,我从来没有深究。对延误表示歉意。如果您找到解决方案,请发布。

标签: jquery twitter-bootstrap bootstrap-datetimepicker


【解决方案1】:

我刚刚遇到了这个确切的问题,这个问题已经在插件GitHub Page 上提出了,而且看起来这个错误还没有被修复。

之所以会发生,是因为步进器四舍五入到最近的 价值。所以有时这意味着四舍五入到最接近的 15 可以在minDate = moment() 之前。

示例:上午 11:18 将向下舍入到上午 11:15,但这是在 moment() 之前 使其无效。

此解释由 GitHub 问题提出者提供。

问题提出者继续提供了一个 hacky 解决方法,我不确定它是否可靠。也许这个问题还在解决中,但它是前段时间提出的!

我想我会与大家分享这些信息(即使这是一个老问题!),因为在这方面没有很多帮助。

【讨论】:

    【解决方案2】:
    $(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);
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      • 2016-01-19
      • 2017-11-19
      • 2015-01-30
      • 1970-01-01
      相关资源
      最近更新 更多