diff options
author | lpsolit%gmail.com <> | 2005-07-11 08:19:59 +0200 |
---|---|---|
committer | lpsolit%gmail.com <> | 2005-07-11 08:19:59 +0200 |
commit | 9a46dc023dc2123c305f2b7bc39ddc5efb7c9c6e (patch) | |
tree | c185c1f1db410f194da092629a787fbee2fb02ae | |
parent | df8ee685cf1f6ad78f3a4c0d01d64cc492c5c19d (diff) | |
download | bugzilla-9a46dc023dc2123c305f2b7bc39ddc5efb7c9c6e.tar.gz bugzilla-9a46dc023dc2123c305f2b7bc39ddc5efb7c9c6e.tar.xz |
Bug 291209: Allow Relative Date Searches by Hour - Patch by Justin "Callek" Wood <bugspam.Callek@gmail.com> r=joel a=justdave
-rw-r--r-- | Bugzilla/Search.pm | 11 | ||||
-rw-r--r-- | template/en/default/search/search-help.html.tmpl | 14 |
2 files changed, 18 insertions, 7 deletions
diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index ec93e96a8..8e43353a3 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -1409,7 +1409,7 @@ sub SqlifyDate { } - if ($str =~ /^(-|\+)?(\d+)([dDwWmMyY])$/) { # relative date + if ($str =~ /^(-|\+)?(\d+)([hHdDwWmMyY])$/) { # relative date my ($sign, $amount, $unit, $date) = ($1, $2, lc $3, time); my ($sec, $min, $hour, $mday, $month, $year, $wday) = localtime($date); if ($sign eq '+') { $amount = -$amount; } @@ -1429,6 +1429,15 @@ sub SqlifyDate { while ($month<0) { $year--; $month += 12; } return sprintf("%4d-%02d-01 00:00:00", $year+1900, $month+1); } + elsif ($unit eq 'h') { + # Special case 0h for 'beginning of this hour' + if ($amount == 0) { + $date -= $sec + 60*$min; + } else { + $date -= 3600*$amount; + } + return time2str("%Y-%m-%d %H:%M:%S", $date); + } return undef; # should not happen due to regexp at top } my $date = str2time($str); diff --git a/template/en/default/search/search-help.html.tmpl b/template/en/default/search/search-help.html.tmpl index 0d4b53e26..0c8529d05 100644 --- a/template/en/default/search/search-help.html.tmpl +++ b/template/en/default/search/search-help.html.tmpl @@ -92,15 +92,17 @@ { id => "chfieldfrom", html => "Specify the start and end dates either in YYYY-MM-DD format<br> (optionally followed by HH:mm, in 24 hour clock), or in relative<br> - dates such as 1d, 2w, 3m, 4y, which respectively mean one day,<br> - two weeks, three months, or four years ago. 0d is last midnight,<br> - and 0w, 0m, 0y is the beginning of this week, month, or year." }, + dates such as 1h, 2d, 3w, 4m, 5y, which respectively mean one hour,<br> + one day, two weeks, three months, or four years ago. 0d is last<br> + midnight, and 0h, 0w, 0m, 0y is the beginning of this hour, week,<br> + month, or year." }, { id => "chfieldto", html => "Specify the start and end dates either in YYYY-MM-DD format<br> (optionally followed by HH:mm, in 24 hour clock), or in relative<br> - dates such as 1d, 2w, 3m, 4y, which respectively mean one day,<br> - two weeks, three months, or four years ago. 0d is last midnight,<br> - and 0w, 0m, 0y is the beginning of this week, month, or year." }, + dates such as 1h, 2d, 3w, 4m, 5y, which respectively mean one hour,<br> + one day, two weeks, three months, or four years ago. 0d is last<br> + midnight, and 0h, 0w, 0m, 0y is the beginning of this hour, week,<br> + month, or year." }, { id => "chfieldvalue", html => "The value the field defined above changed to during that time." }, ] %] |