Skip to content

Commit d001df8

Browse files
Merge pull request trentrichardson#692 from bodrick/dev
Added new options to specify minTime and maxTime
2 parents 8cda2dd + 6e463ea commit d001df8

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)