设置datepicker选项后如何防止隐藏时间?

时间:2014-04-09 18:45:21

标签: jquery jquery-ui datetimepicker

我已经使用此插件将时间选择器添加到jQuery UI datepicker - date time picker

加载后我的输入具有此状态:例如2014-04-09 19:13。 然后我使用以下代码初始化datetimepicker:

var timeFormat = "HH:mm";
var dateFormat = "yy-mm-dd";
$('.datepicker').datetimepicker({
    timeFormat: timeFormat,
    dateFormat: dateFormat
});

然后我尝试初始化两个输入的最小和最大日期范围:

   var closePreRegistration = $('#ClosePreRegistrationDate');
    var openPreRegistration = $('#OpenPreRegistrationDate');
    closePreRegistration.datetimepicker("option", "minDateTime", openPreRegistration.datepicker('getDate'));
    openPreRegistration.datetimepicker("option", 'maxDateTime', closePreRegistration.datepicker('getDate'));

但是在初始化之后(实际上在设置任何选项之后),我的输入被重置为这种格式:

2014-04-09 without time.

更改时间之后,格式将更改为正确的格式,但这不能解决我的问题。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我通过在设置minDate或maxDate选项后手动更新时间来解决此问题。

对于初始化范围,我创建了函数:

function initDateTimeRanges(first, second) {
    var minDate = first.datetimepicker('getDate');
    var maxDate = second.datetimepicker('getDate');
    second.datetimepicker('option', 'minDate', minDate);
    second.datetimepicker('setDate', maxDate);
    first.datetimepicker('option', 'maxDate', maxDate);
    first.datetimepicker('setDate', minDate);
}

以这种方式使用它:

initDateTimeRanges(openPreRegistration, closePreRegistration);
initDateTimeRanges(showStartTime, showEndTime);