@@ -514,27 +514,34 @@ $.extend(Timepicker.prototype, {
514
514
//########################################################################
515
515
_limitMinMaxDateTime : function ( dp_inst , adjustSliders ) {
516
516
var o = this . _defaults ,
517
- dp_date = new Date ( dp_inst . selectedYear , dp_inst . selectedMonth , dp_inst . selectedDay ) ,
518
- tp_date = new Date ( dp_inst . selectedYear , dp_inst . selectedMonth , dp_inst . selectedDay , this . hour , this . minute , this . second , 0 ) ;
519
-
517
+ dp_date = new Date ( dp_inst . selectedYear , dp_inst . selectedMonth , dp_inst . selectedDay ) ;
518
+
520
519
if ( this . _defaults . minDateTime !== null && dp_date ) {
521
520
var minDateTime = this . _defaults . minDateTime ,
522
521
minDateTimeDate = new Date ( minDateTime . getFullYear ( ) , minDateTime . getMonth ( ) , minDateTime . getDate ( ) , 0 , 0 , 0 , 0 ) ;
523
-
522
+
524
523
if ( this . hourMinOriginal === null || this . minuteMinOriginal === null || this . secondMinOriginal === null ) {
525
524
this . hourMinOriginal = o . hourMin ;
526
525
this . minuteMinOriginal = o . minuteMin ;
527
526
this . secondMinOriginal = o . secondMin ;
528
527
}
529
-
530
- if ( minDateTimeDate . getTime ( ) == dp_date . getTime ( ) ) {
531
- this . _defaults . hourMin = minDateTime . getHours ( ) ;
532
- this . _defaults . minuteMin = minDateTime . getMinutes ( ) ;
533
- this . _defaults . secondMin = minDateTime . getSeconds ( ) ;
534
528
535
- if ( this . hour < this . _defaults . hourMin ) this . hour = this . _defaults . hourMin ;
536
- if ( this . minute < this . _defaults . minuteMin ) this . minute = this . _defaults . minuteMin ;
537
- if ( this . second < this . _defaults . secondMin ) this . second = this . _defaults . secondMin ;
529
+ if ( dp_inst . settings . timeOnly || minDateTimeDate . getTime ( ) == dp_date . getTime ( ) ) {
530
+ this . _defaults . hourMin = minDateTime . getHours ( ) ;
531
+ if ( this . hour <= this . _defaults . hourMin ) {
532
+ this . hour = this . _defaults . hourMin ;
533
+ this . _defaults . minuteMin = minDateTime . getMinutes ( ) ;
534
+ if ( this . minute <= this . _defaults . minuteMin ) {
535
+ this . minute = this . _defaults . minuteMin ;
536
+ this . _defaults . secondMin = minDateTime . getSeconds ( ) ;
537
+ } else {
538
+ if ( this . second < this . _defaults . secondMin ) this . second = this . _defaults . secondMin ;
539
+ this . _defaults . secondMin = this . secondMinOriginal ;
540
+ }
541
+ } else {
542
+ this . _defaults . minuteMin = this . minuteMinOriginal ;
543
+ this . _defaults . secondMin = this . secondMinOriginal ;
544
+ }
538
545
} else {
539
546
this . _defaults . hourMin = this . hourMinOriginal ;
540
547
this . _defaults . minuteMin = this . minuteMinOriginal ;
@@ -551,29 +558,38 @@ $.extend(Timepicker.prototype, {
551
558
this . minuteMaxOriginal = o . minuteMax ;
552
559
this . secondMaxOriginal = o . secondMax ;
553
560
}
554
-
555
- if ( maxDateTimeDate . getTime ( ) == dp_date . getTime ( ) ) {
561
+
562
+ if ( dp_inst . settings . timeOnly || maxDateTimeDate . getTime ( ) == dp_date . getTime ( ) ) {
556
563
this . _defaults . hourMax = maxDateTime . getHours ( ) ;
557
- this . _defaults . minuteMax = maxDateTime . getMinutes ( ) ;
558
- this . _defaults . secondMax = maxDateTime . getSeconds ( ) ;
559
-
560
- if ( this . hour > this . _defaults . hourMax ) { this . hour = this . _defaults . hourMax ; }
561
- if ( this . minute > this . _defaults . minuteMax ) this . minute = this . _defaults . minuteMax ;
562
- if ( this . second > this . _defaults . secondMax ) this . second = this . _defaults . secondMax ;
564
+ if ( this . hour >= this . _defaults . hourMax ) {
565
+ this . hour = this . _defaults . hourMax ;
566
+ this . _defaults . minuteMax = maxDateTime . getMinutes ( ) ;
567
+ if ( this . minute >= this . _defaults . minuteMax ) {
568
+ this . minute = this . _defaults . minuteMax ;
569
+ this . _defaults . secondMin = maxDateTime . getSeconds ( ) ;
570
+ } else {
571
+ if ( this . second > this . _defaults . secondMax ) this . second = this . _defaults . secondMax ;
572
+ this . _defaults . secondMax = this . secondMaxOriginal ;
573
+ }
574
+ } else {
575
+ this . _defaults . minuteMax = this . minuteMaxOriginal ;
576
+ this . _defaults . secondMax = this . secondMaxOriginal ;
577
+ }
563
578
} else {
564
579
this . _defaults . hourMax = this . hourMaxOriginal ;
565
580
this . _defaults . minuteMax = this . minuteMaxOriginal ;
566
581
this . _defaults . secondMax = this . secondMaxOriginal ;
567
582
}
568
583
}
569
-
584
+
570
585
if ( adjustSliders !== undefined && adjustSliders === true ) {
571
586
this . hour_slider . slider ( "option" , { min : this . _defaults . hourMin , max : this . _defaults . hourMax } ) . slider ( 'value' , this . hour ) ;
572
587
this . minute_slider . slider ( "option" , { min : this . _defaults . minuteMin , max : this . _defaults . minuteMax } ) . slider ( 'value' , this . minute ) ;
573
588
this . second_slider . slider ( "option" , { min : this . _defaults . secondMin , max : this . _defaults . secondMax } ) . slider ( 'value' , this . second ) ;
574
589
}
575
590
576
591
} ,
592
+
577
593
578
594
//########################################################################
579
595
// when a slider moves, set the internal time...
@@ -601,6 +617,7 @@ $.extend(Timepicker.prototype, {
601
617
if ( minute !== false ) this . minute = minute ;
602
618
if ( second !== false ) this . second = second ;
603
619
if ( timezone !== false ) this . timezone = timezone ;
620
+ this . _limitMinMaxDateTime ( this . inst , true ) ;
604
621
}
605
622
if ( this . _defaults . ampm ) this . ampm = ampm ;
606
623
0 commit comments