summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrent Richardson <trentdrichardson@gmail.com>2012-09-13 11:31:21 -0400
committerTrent Richardson <trentdrichardson@gmail.com>2012-09-13 11:31:21 -0400
commit8e43a0844ec2a7c773e30d57075e7f4718bae64b (patch)
treeff2ad1d1e168caf519f3ab0470bab4e955e91ea2
parentd8cd2dab3e9a4bf7e1e91f735ba21f376894066e (diff)
downloadjQuery-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.js28
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';
}