Bootstrap DateTimePicker возвращает неправильное время с minDate и maxDate - PullRequest
0 голосов
/ 08 ноября 2018

Здравствуйте, я пытаюсь заставить плагин начальной загрузки 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/

1 Ответ

0 голосов
/ 08 ноября 2018

Это похоже на то, что вы ищете: 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 */]
]
...