@@ -480,27 +480,34 @@ $.extend(Timepicker.prototype, {
480
480
//########################################################################
481
481
_limitMinMaxDateTime : function ( dp_inst , adjustSliders ) {
482
482
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
+
486
485
if ( this . _defaults . minDateTime !== null && dp_date ) {
487
486
var minDateTime = this . _defaults . minDateTime ,
488
487
minDateTimeDate = new Date ( minDateTime . getFullYear ( ) , minDateTime . getMonth ( ) , minDateTime . getDate ( ) , 0 , 0 , 0 , 0 ) ;
489
-
488
+
490
489
if ( this . hourMinOriginal === null || this . minuteMinOriginal === null || this . secondMinOriginal === null ) {
491
490
this . hourMinOriginal = o . hourMin ;
492
491
this . minuteMinOriginal = o . minuteMin ;
493
492
this . secondMinOriginal = o . secondMin ;
494
493
}
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 ( ) ;
500
494
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
+ }
504
511
} else {
505
512
this . _defaults . hourMin = this . hourMinOriginal ;
506
513
this . _defaults . minuteMin = this . minuteMinOriginal ;
@@ -517,22 +524,30 @@ $.extend(Timepicker.prototype, {
517
524
this . minuteMaxOriginal = o . minuteMax ;
518
525
this . secondMaxOriginal = o . secondMax ;
519
526
}
520
-
521
- if ( maxDateTimeDate . getTime ( ) == dp_date . getTime ( ) ) {
527
+
528
+ if ( dp_inst . settings . timeOnly || maxDateTimeDate . getTime ( ) == dp_date . getTime ( ) ) {
522
529
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
+ }
529
544
} else {
530
545
this . _defaults . hourMax = this . hourMaxOriginal ;
531
546
this . _defaults . minuteMax = this . minuteMaxOriginal ;
532
547
this . _defaults . secondMax = this . secondMaxOriginal ;
533
548
}
534
549
}
535
-
550
+
536
551
if ( adjustSliders !== undefined && adjustSliders === true ) {
537
552
this . hour_slider . slider ( "option" , { min : this . _defaults . hourMin , max : this . _defaults . hourMax } ) . slider ( 'value' , this . hour ) ;
538
553
this . minute_slider . slider ( "option" , { min : this . _defaults . minuteMin , max : this . _defaults . minuteMax } ) . slider ( 'value' , this . minute ) ;
@@ -565,6 +580,7 @@ $.extend(Timepicker.prototype, {
565
580
if ( hour !== false ) this . hour = hour ;
566
581
if ( minute !== false ) this . minute = minute ;
567
582
if ( second !== false ) this . second = second ;
583
+ this . _limitMinMaxDateTime ( this . inst , true ) ;
568
584
}
569
585
if ( this . _defaults . ampm ) this . ampm = ampm ;
570
586
0 commit comments