@@ -514,27 +514,34 @@ $.extend(Timepicker.prototype, {
514514 //########################################################################
515515 _limitMinMaxDateTime : function ( dp_inst , adjustSliders ) {
516516 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+
520519 if ( this . _defaults . minDateTime !== null && dp_date ) {
521520 var minDateTime = this . _defaults . minDateTime ,
522521 minDateTimeDate = new Date ( minDateTime . getFullYear ( ) , minDateTime . getMonth ( ) , minDateTime . getDate ( ) , 0 , 0 , 0 , 0 ) ;
523-
522+
524523 if ( this . hourMinOriginal === null || this . minuteMinOriginal === null || this . secondMinOriginal === null ) {
525524 this . hourMinOriginal = o . hourMin ;
526525 this . minuteMinOriginal = o . minuteMin ;
527526 this . secondMinOriginal = o . secondMin ;
528527 }
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 ( ) ;
534528
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+ }
538545 } else {
539546 this . _defaults . hourMin = this . hourMinOriginal ;
540547 this . _defaults . minuteMin = this . minuteMinOriginal ;
@@ -551,29 +558,38 @@ $.extend(Timepicker.prototype, {
551558 this . minuteMaxOriginal = o . minuteMax ;
552559 this . secondMaxOriginal = o . secondMax ;
553560 }
554-
555- if ( maxDateTimeDate . getTime ( ) == dp_date . getTime ( ) ) {
561+
562+ if ( dp_inst . settings . timeOnly || maxDateTimeDate . getTime ( ) == dp_date . getTime ( ) ) {
556563 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+ }
563578 } else {
564579 this . _defaults . hourMax = this . hourMaxOriginal ;
565580 this . _defaults . minuteMax = this . minuteMaxOriginal ;
566581 this . _defaults . secondMax = this . secondMaxOriginal ;
567582 }
568583 }
569-
584+
570585 if ( adjustSliders !== undefined && adjustSliders === true ) {
571586 this . hour_slider . slider ( "option" , { min : this . _defaults . hourMin , max : this . _defaults . hourMax } ) . slider ( 'value' , this . hour ) ;
572587 this . minute_slider . slider ( "option" , { min : this . _defaults . minuteMin , max : this . _defaults . minuteMax } ) . slider ( 'value' , this . minute ) ;
573588 this . second_slider . slider ( "option" , { min : this . _defaults . secondMin , max : this . _defaults . secondMax } ) . slider ( 'value' , this . second ) ;
574589 }
575590
576591 } ,
592+
577593
578594 //########################################################################
579595 // when a slider moves, set the internal time...
@@ -601,6 +617,7 @@ $.extend(Timepicker.prototype, {
601617 if ( minute !== false ) this . minute = minute ;
602618 if ( second !== false ) this . second = second ;
603619 if ( timezone !== false ) this . timezone = timezone ;
620+ this . _limitMinMaxDateTime ( this . inst , true ) ;
604621 }
605622 if ( this . _defaults . ampm ) this . ampm = ampm ;
606623
0 commit comments