@@ -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