【问题标题】:Bootstrap DateTimePicker returning wrong Time with minDate and maxDateBootstrap DateTimePicker 使用 minDate 和 maxDate 返回错误的时间
【发布时间】:2019-04-11 14:02:24
【问题描述】:

您好,我正在尝试让 bootstrap datetimepicker 插件与 minDate 和 maxDate 一起正常工作,这是我的代码:

var $el                      = $('#dateFrom');
var baseDate                = "2018-11-20";
var defaultDate             = moment(baseDate + " 13:30:00");
var min                     = moment(baseDate + " 08:00:00");
var max                     = moment(baseDate + " 22:00:00");

if($el.data('DateTimePicker')){ //function needs to reset it on each call
    $el.data('DateTimePicker').destroy();
}

$el.val(defaultDate.format("HH:mm"));

var config = {
  format:"HH:mm",
  defaultDate:defaultDate,
  minDate:min,
  maxDate:max
}

$el.datetimepicker(config);

这里的问题是它默认时间为minDate而不是设置为defaultDate,这里是一个例子http://jsfiddle.net/imurphy/bte731ux/38/

【问题讨论】:

  • 根据文档:“如果这些设置中的任何一个是同一天,则将覆盖 defaultDate 和 useCurrent,因为根据您选择的规则,这两个选项都是无效的。” (强调我的)。您是否试图只允许特定日期的时间范围?
  • 是的,我试图只允许一个特定的时间范围,无论日期如何,我只关心这里的时间
  • 我相信你在关注disabledTimeIntervals,那么:eonasdan.github.io/bootstrap-datetimepicker/Options/…
  • 更新了我的答案
  • @TiesonT。谢谢,这看起来是正确的方法,唯一的问题是,如果你输入一个从 0 到 8 和 22 到 24 的范围,你仍然可以选择“0”小时,有没有想过也禁用 0?

标签: jquery twitter-bootstrap datepicker


【解决方案1】:

这似乎完成了你所追求的:http://jsfiddle.net/gcrb2xsm/

var $el          = $('#dateFrom');
var baseDate     = "2018-11-20";
var defaultDate  = moment(baseDate + " 13:30:00");

if($el.data('DateTimePicker')){
    $el.data('DateTimePicker').destroy();
}

$el.val(defaultDate.format("HH:mm"));
$('#should').text("Initian value should be " + defaultDate.format("HH:mm"));

var config = {
  format:"HH:mm",
  defaultDate:defaultDate,
  disabledTimeIntervals: [[moment({ h: 0 }), moment({ h: 8 })], [moment({ h: 22 }), moment({ h: 24 })]]
}

$el.datetimepicker(config);

基本上,disabledTimeIntervals 是在尝试将时间选择限制在特定时间范围时使用的选项。您可以为每个范围添加一对开始和停止时间以排除。所以,上面显示的值是:

[
    [moment({ h: 0 }), moment({ h: 8 })] /* disable from midnight to 8 AM */, 
    [moment({ h: 22 }), moment({ h: 24 }) /* disable from 10 PM to midnight */]
]

【讨论】:

  • 谢谢它的工作,虽然 0 小时仍然是可选的,有什么想法也禁用它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
相关资源
最近更新 更多