diff options
author | bodrick <cmotch@gmail.com> | 2014-02-12 15:05:48 -0500 |
---|---|---|
committer | bodrick <cmotch@gmail.com> | 2014-02-12 15:05:48 -0500 |
commit | 6e463ea22c1211bd9059c02dc380d58ea61f90b7 (patch) | |
tree | a1c120c5b0683615ca172877ad6b4443a4606ae7 | |
parent | 8cda2ddd84203cc4995d569ce42ea6f1b94b1f2e (diff) | |
download | jQuery-Timepicker-Addon-6e463ea22c1211bd9059c02dc380d58ea61f90b7.zip jQuery-Timepicker-Addon-6e463ea22c1211bd9059c02dc380d58ea61f90b7.tar.gz jQuery-Timepicker-Addon-6e463ea22c1211bd9059c02dc380d58ea61f90b7.tar.bz2 |
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.
-rw-r--r-- | src/docs/options.html | 6 | ||||
-rw-r--r-- | src/jquery-ui-timepicker-addon.js | 42 |
2 files changed, 48 insertions, 0 deletions
diff --git a/src/docs/options.html b/src/docs/options.html index 4c62358..941028d 100644 --- a/src/docs/options.html +++ b/src/docs/options.html @@ -236,6 +236,12 @@ <dt>maxDateTime</dt> <dd><em>Default: null</em> - Date object of the maximum datetime allowed. Also Available as maxDate.</dd> + <dt>minTime</dt> + <dd><em>Default: null</em> - String of the minimum time allowed. '8:00 am' will restrict to times after 8am</dd> + + <dt>maxTime</dt> + <dd><em>Default: null</em> - String of the maximum time allowed. '8:00 pm' will restrict to times before 8pm</dd> + <dt>parse</dt> <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: <pre>{ diff --git a/src/jquery-ui-timepicker-addon.js b/src/jquery-ui-timepicker-addon.js index 974e46a..6dfcdcc 100644 --- a/src/jquery-ui-timepicker-addon.js +++ b/src/jquery-ui-timepicker-addon.js @@ -84,6 +84,8 @@ microsecMax: 999, minDateTime: null, maxDateTime: null, + maxTime: null, + minTime: null, onSelect: null, hourGrid: 0, minuteGrid: 0, @@ -120,6 +122,8 @@ millisec_slider: null, microsec_slider: null, timezone_select: null, + maxTime: null, + minTime: null, hour: 0, minute: 0, second: 0, @@ -666,6 +670,44 @@ } } + if (dp_inst.settings.minTime!==null) { + var tempMinTime=new Date("01/01/1970 " + dp_inst.settings.minTime); + if (this.hour<tempMinTime.getHours()) { + this.hour=this._defaults.hourMin=tempMinTime.getHours(); + this.minute=this._defaults.minuteMin=tempMinTime.getMinutes(); + } else if (this.hour===tempMinTime.getHours() && this.minute<tempMinTime.getMinutes()) { + this.minute=this._defaults.minuteMin=tempMinTime.getMinutes(); + } else { + if (this._defaults.hourMin<tempMinTime.getHours()) { + this._defaults.hourMin=tempMinTime.getHours(); + this._defaults.minuteMin=tempMinTime.getMinutes(); + } else if (this._defaults.hourMin===tempMinTime.getHours()===this.hour && this._defaults.minuteMin<tempMinTime.getMinutes()) { + this._defaults.minuteMin=tempMinTime.getMinutes(); + } else { + this._defaults.minuteMin=0; + } + } + } + + if (dp_inst.settings.maxTime!==null) { + var tempMaxTime=new Date("01/01/1970 " + dp_inst.settings.maxTime); + if (this.hour>tempMaxTime.getHours()) { + this.hour=this._defaults.hourMax=tempMaxTime.getHours(); + this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes(); + } else if (this.hour===tempMaxTime.getHours() && this.minute>tempMaxTime.getMinutes()) { + this.minute=this._defaults.minuteMax=tempMaxTime.getMinutes(); + } else { + if (this._defaults.hourMax>tempMaxTime.getHours()) { + this._defaults.hourMax=tempMaxTime.getHours(); + this._defaults.minuteMax=tempMaxTime.getMinutes(); + } else if (this._defaults.hourMax===tempMaxTime.getHours()===this.hour && this._defaults.minuteMax>tempMaxTime.getMinutes()) { + this._defaults.minuteMax=tempMaxTime.getMinutes(); + } else { + this._defaults.minuteMax=59; + } + } + } + if (adjustSliders !== undefined && adjustSliders === true) { var hourMax = parseInt((this._defaults.hourMax - ((this._defaults.hourMax - this._defaults.hourMin) % this._defaults.stepHour)), 10), minMax = parseInt((this._defaults.minuteMax - ((this._defaults.minuteMax - this._defaults.minuteMin) % this._defaults.stepMinute)), 10), |