Skip to content

Commit 1226bca

Browse files
committed
fix min/max minute and second value, when selectedHour != minHour
1 parent ec1a143 commit 1226bca

File tree

1 file changed

+37
-21
lines changed

1 file changed

+37
-21
lines changed

jquery-ui-timepicker-addon.js

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -480,27 +480,34 @@ $.extend(Timepicker.prototype, {
480480
//########################################################################
481481
_limitMinMaxDateTime: function(dp_inst, adjustSliders){
482482
var o = this._defaults,
483-
dp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay),
484-
tp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay, this.hour, this.minute, this.second, 0);
485-
483+
dp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay);
484+
486485
if(this._defaults.minDateTime !== null && dp_date){
487486
var minDateTime = this._defaults.minDateTime,
488487
minDateTimeDate = new Date(minDateTime.getFullYear(), minDateTime.getMonth(), minDateTime.getDate(), 0, 0, 0, 0);
489-
488+
490489
if(this.hourMinOriginal === null || this.minuteMinOriginal === null || this.secondMinOriginal === null){
491490
this.hourMinOriginal = o.hourMin;
492491
this.minuteMinOriginal = o.minuteMin;
493492
this.secondMinOriginal = o.secondMin;
494493
}
495-
496-
if(minDateTimeDate.getTime() == dp_date.getTime()){
497-
this._defaults.hourMin = minDateTime.getHours();
498-
this._defaults.minuteMin = minDateTime.getMinutes();
499-
this._defaults.secondMin = minDateTime.getSeconds();
500494

501-
if(this.hour < this._defaults.hourMin) this.hour = this._defaults.hourMin;
502-
if(this.minute < this._defaults.minuteMin) this.minute = this._defaults.minuteMin;
503-
if(this.second < this._defaults.secondMin) this.second = this._defaults.secondMin;
495+
if(dp_inst.settings.timeOnly || minDateTimeDate.getTime() == dp_date.getTime()) {
496+
this._defaults.hourMin = minDateTime.getHours();
497+
if (this.hour <= this._defaults.hourMin) {
498+
this.hour = this._defaults.hourMin;
499+
this._defaults.minuteMin = minDateTime.getMinutes();
500+
if (this.minute <= this._defaults.minuteMin) {
501+
this.minute = this._defaults.minuteMin;
502+
this._defaults.secondMin = minDateTime.getSeconds();
503+
} else {
504+
if(this.second < this._defaults.secondMin) this.second = this._defaults.secondMin;
505+
this._defaults.secondMin = this.secondMinOriginal;
506+
}
507+
} else {
508+
this._defaults.minuteMin = this.minuteMinOriginal;
509+
this._defaults.secondMin = this.secondMinOriginal;
510+
}
504511
}else{
505512
this._defaults.hourMin = this.hourMinOriginal;
506513
this._defaults.minuteMin = this.minuteMinOriginal;
@@ -517,22 +524,30 @@ $.extend(Timepicker.prototype, {
517524
this.minuteMaxOriginal = o.minuteMax;
518525
this.secondMaxOriginal = o.secondMax;
519526
}
520-
521-
if(maxDateTimeDate.getTime() == dp_date.getTime()){
527+
528+
if(dp_inst.settings.timeOnly || maxDateTimeDate.getTime() == dp_date.getTime()){
522529
this._defaults.hourMax = maxDateTime.getHours();
523-
this._defaults.minuteMax = maxDateTime.getMinutes();
524-
this._defaults.secondMax = maxDateTime.getSeconds();
525-
526-
if(this.hour > this._defaults.hourMax){ this.hour = this._defaults.hourMax; }
527-
if(this.minute > this._defaults.minuteMax) this.minute = this._defaults.minuteMax;
528-
if(this.second > this._defaults.secondMax) this.second = this._defaults.secondMax;
530+
if (this.hour >= this._defaults.hourMax) {
531+
this.hour = this._defaults.hourMax;
532+
this._defaults.minuteMax = maxDateTime.getMinutes();
533+
if (this.minute >= this._defaults.minuteMax) {
534+
this.minute = this._defaults.minuteMax;
535+
this._defaults.secondMin = maxDateTime.getSeconds();
536+
} else {
537+
if(this.second > this._defaults.secondMax) this.second = this._defaults.secondMax;
538+
this._defaults.secondMax = this.secondMaxOriginal;
539+
}
540+
} else {
541+
this._defaults.minuteMax = this.minuteMaxOriginal;
542+
this._defaults.secondMax = this.secondMaxOriginal;
543+
}
529544
}else{
530545
this._defaults.hourMax = this.hourMaxOriginal;
531546
this._defaults.minuteMax = this.minuteMaxOriginal;
532547
this._defaults.secondMax = this.secondMaxOriginal;
533548
}
534549
}
535-
550+
536551
if(adjustSliders !== undefined && adjustSliders === true){
537552
this.hour_slider.slider("option", { min: this._defaults.hourMin, max: this._defaults.hourMax }).slider('value', this.hour);
538553
this.minute_slider.slider("option", { min: this._defaults.minuteMin, max: this._defaults.minuteMax }).slider('value', this.minute);
@@ -565,6 +580,7 @@ $.extend(Timepicker.prototype, {
565580
if (hour !== false)this.hour = hour;
566581
if (minute !== false) this.minute = minute;
567582
if (second !== false) this.second = second;
583+
this._limitMinMaxDateTime(this.inst, true);
568584
}
569585
if (this._defaults.ampm) this.ampm = ampm;
570586

0 commit comments

Comments
 (0)