From: mkanat%bugzilla.org <> Date: Fri, 28 Dec 2007 04:39:27 +0000 (+0000) Subject: Bug 405898: Date/Time Fields should accept times like H:MM X-Git-Tag: bugzilla-3.1.3~417 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e621696be0f092e348e4534e1855c0a3146c2c9e;p=thirdparty%2Fbugzilla.git Bug 405898: Date/Time Fields should accept times like H:MM Patch By Max Kanat-Alexander r=LpSolit, a=LpSolit --- diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 4d702f02e9..1471295fc3 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -476,8 +476,8 @@ sub validate_time { my $ts = str2time($time); if ($ts) { $time2 = time2str("%H:%M:%S", $ts); - if (trim($time) =~ /^\d\d:\d\d$/) { - $time .= ':00'; + if ($time =~ /^(\d{1,2}):(\d\d)(?::(\d\d))?$/) { + $time = sprintf("%02d:%02d:%02d", $1, $2, $3 || 0); } } my $ret = ($ts && $time eq $time2); diff --git a/js/field.js b/js/field.js index 97f1cb7a18..ca58329f45 100644 --- a/js/field.js +++ b/js/field.js @@ -85,7 +85,7 @@ function setFieldFromCalendar(type, args, date_field) { // We can't just write the date straight into the field, because there // might already be a time there. - var timeRe = /(\d\d):(\d\d)(?::(\d\d))?/; + var timeRe = /\b(\d{1,2}):(\d\d)(?::(\d\d))?/; var currentTime = timeRe.exec(date_field.value); var d = new Date(setDate[0], setDate[1] - 1, setDate[2]); if (currentTime) { @@ -104,9 +104,6 @@ function setFieldFromCalendar(type, args, date_field) { var dateStr = year + '-' + month + '-' + day; if (currentTime) { - var hours = d.getHours(); - if (hours < 10) hours = '0' + String(hours); - d.setHours(hours); var minutes = d.getMinutes(); if (minutes < 10) minutes = '0' + String(minutes); var seconds = d.getSeconds(); @@ -114,7 +111,7 @@ function setFieldFromCalendar(type, args, date_field) { seconds = '0' + String(seconds); } - dateStr = dateStr + ' ' + hours + ':' + minutes; + dateStr = dateStr + ' ' + d.getHours() + ':' + minutes; if (seconds) dateStr = dateStr + ':' + seconds; }