Skip to content

Commit 6e463ea

Browse files
committed
Added new options to specify minTime and maxTime
Added two new options so that minimum time and maximum time can be specified when selecting times. Very much different than the minDate/maxDate in that the time is restricted each day to the values specified.
1 parent 8cda2dd commit 6e463ea

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

src/docs/options.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,12 @@ <h3>Other Options</h3>
236236
<dt>maxDateTime</dt>
237237
<dd><em>Default: null</em> - Date object of the maximum datetime allowed. Also Available as maxDate.</dd>
238238

239+
<dt>minTime</dt>
240+
<dd><em>Default: null</em> - String of the minimum time allowed. '8:00 am' will restrict to times after 8am</dd>
241+
242+
<dt>maxTime</dt>
243+
<dd><em>Default: null</em> - String of the maximum time allowed. '8:00 pm' will restrict to times before 8pm</dd>
244+
239245
<dt>parse</dt>
240246
<dd><em>Default: 'strict'</em> - How to parse the time string. Two methods are provided: 'strict' which must match the timeFormat exactly, and 'loose' which uses javascript's new Date(timeString) to guess the time. You may also pass in a function(timeFormat, timeString, options) to handle the parsing yourself, returning a simple object:
241247
<pre>{

src/jquery-ui-timepicker-addon.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@
8484
microsecMax: 999,
8585
minDateTime: null,
8686
maxDateTime: null,
87+
maxTime: null,
88+
minTime: null,
8789
onSelect: null,
8890
hourGrid: 0,
8991
minuteGrid: 0,
@@ -120,6 +122,8 @@
120122
millisec_slider: null,
121123
microsec_slider: null,
122124
timezone_select: null,
125+
maxTime: null,
126+
minTime: null,
123127
hour: 0,
124128
minute: 0,
125129
second: 0,
@@ -666,6 +670,44 @@
666670
}
667671
}
668672

673+
if (dp_inst.settings.minTime!==null) {
674+
var tempMinTime=new Date("01/01/1970 " + dp_inst.settings.minTime);
675+
if (this.hour<tempMinTime.getHours()) {
676+
this.hour=this._defaults.hourMin=tempMinTime.getHours();
677+
this.minute=this._defaults.minuteMin=tempMinTime.getMinutes();
678+
} else if (this.hour===tempMinTime.getHours() && this.minute<tempMinTime.getMinutes()) {
679+
this.minute=this._defaults.minuteMin=tempMinTime.getMinutes();
680+
} else {
681+
if (this._defaults.hourMin<tempMinTime.getHours()) {
682+
this._defaults.hourMin=tempMinTime.getHours();
683+
this._defaults.minuteMin=tempMinTime.getMinutes();
684+
} else if (this._defaults.hourMin===tempMinTime.getHours()===this.hour && this._defaults.minuteMin<tempMinTime.getMinutes()) {
685+
this._defaults.minuteMin=tempMinTime.getMinutes();
686+
} else {
687+
this._defaults.minuteMin=0;
688+
}
689+
}
690+
}
691+
692+
if (dp_inst.settings.maxTime!==null) {
693+
var tempMaxTime=new Date("01/01/1970 " + dp_inst.settings.maxTime);
694+
if (this.hour>tempMaxTime.getHours()) {
695+
this.hour=this._defaults.hourMax=tempMaxTime.getHours();
696+
this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes();
697+
} else if (this.hour===tempMaxTime.getHours() && this.minute>tempMaxTime.getMinutes()) {
698+
this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes();
699+
} else {
700+
if (this._defaults.hourMax>tempMaxTime.getHours()) {
701+
this._defaults.hourMax=tempMaxTime.getHours();
702+
this._defaults.minuteMax=tempMaxTime.getMinutes();
703+
} else if (this._defaults.hourMax===tempMaxTime.getHours()===this.hour && this._defaults.minuteMax>tempMaxTime.getMinutes()) {
704+
this._defaults.minuteMax=tempMaxTime.getMinutes();
705+
} else {
706+
this._defaults.minuteMax=59;
707+
}
708+
}
709+
}
710+
669711
if (adjustSliders !== undefined && adjustSliders === true) {
670712
var hourMax = parseInt((this._defaults.hourMax - ((this._defaults.hourMax - this._defaults.hourMin) % this._defaults.stepHour)), 10),
671713
minMax = parseInt((this._defaults.minuteMax - ((this._defaults.minuteMax - this._defaults.minuteMin) % this._defaults.stepMinute)), 10),

0 commit comments

Comments
 (0)