diff options
author | Trent Richardson <trentdrichardson@gmail.com> | 2012-09-13 11:31:21 -0400 |
---|---|---|
committer | Trent Richardson <trentdrichardson@gmail.com> | 2012-09-13 11:31:21 -0400 |
commit | 8e43a0844ec2a7c773e30d57075e7f4718bae64b (patch) | |
tree | ff2ad1d1e168caf519f3ab0470bab4e955e91ea2 | |
parent | d8cd2dab3e9a4bf7e1e91f735ba21f376894066e (diff) | |
download | jQuery-Timepicker-Addon-8e43a0844ec2a7c773e30d57075e7f4718bae64b.zip jQuery-Timepicker-Addon-8e43a0844ec2a7c773e30d57075e7f4718bae64b.tar.gz jQuery-Timepicker-Addon-8e43a0844ec2a7c773e30d57075e7f4718bae64b.tar.bz2 |
Fixes #432 - Improves parseDate()
-rw-r--r-- | jquery-ui-timepicker-addon.js | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/jquery-ui-timepicker-addon.js b/jquery-ui-timepicker-addon.js index e480ec6..d6927bc 100644 --- a/jquery-ui-timepicker-addon.js +++ b/jquery-ui-timepicker-addon.js @@ -1607,16 +1607,24 @@ * Throws exception when date can't be parsed * If only date is present, time substring eill be '' */ - var splitDateTime = function(dateFormat, dateTimeString, dateSettings) { + var splitDateTime = function(dateFormat, dateTimeString, dateSettings, timeSettings) { try { - var date = $.datepicker._base_parseDate(dateFormat, dateTimeString, dateSettings); + var date = $.datepicker._base_parseDate(dateFormat, dateTimeString, dateSettings), + separator = timeSettings && timeSettings.separator ? timeSettings.separator : $.timepicker._defaults.separator; + if (dateTimeString.indexOf(separator) > 0) { + var dta = dateTimeString.split(separator); + if (dta.length == 2) { + return dta; + } + } + } catch (err) { if (err.indexOf(":") >= 0) { // Hack! The error message ends with a colon, a space, and // the "extra" characters. We rely on that instead of // attempting to perfectly reproduce the parsing algorithm. - var dateStringLength = dateTimeString.length - (err.length - err.indexOf(':') - 2); - var timeString = dateTimeString.substring(dateStringLength); + var dateStringLength = dateTimeString.length - (err.length - err.indexOf(':') - 2), + timeString = dateTimeString.substring(dateStringLength); return [dateTimeString.substring(0, dateStringLength), dateTimeString.substring(dateStringLength)]; @@ -1635,16 +1643,12 @@ */ var parseDateTimeInternal = function(dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) { var date; - var splitRes = splitDateTime(dateFormat, dateTimeString, dateSettings); + var splitRes = splitDateTime(dateFormat, dateTimeString, dateSettings, timeSettings); date = $.datepicker._base_parseDate(dateFormat, splitRes[0], dateSettings); if (splitRes[1] !== '') { - var timeString = splitRes[1]; - var separator = timeSettings && timeSettings.separator ? timeSettings.separator : $.timepicker._defaults.separator; - if (timeString.indexOf(separator) !== 0) { - throw 'Missing time separator'; - } - timeString = timeString.substring(separator.length); - var parsedTime = $.datepicker.parseTime(timeFormat, timeString, timeSettings); + var timeString = splitRes[1], + parsedTime = $.datepicker.parseTime(timeFormat, timeString, timeSettings); + if (parsedTime === null) { throw 'Wrong time format'; } |