From 0fcc20760ab4c49ec7e3b93f9025a9b0b8d2046b Mon Sep 17 00:00:00 2001 From: "jake%bugzilla.org" <> Date: Thu, 28 Nov 2002 00:00:20 +0000 Subject: Bug 67077 - We now include the timezone (as configured in editparams.cgi) on every time we display. r=justdave a=justdave --- Bugzilla/Attachment.pm | 10 ++-------- Bugzilla/Util.pm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 52 insertions(+), 9 deletions(-) (limited to 'Bugzilla') diff --git a/Bugzilla/Attachment.pm b/Bugzilla/Attachment.pm index 53690170e..27d7fa2ca 100644 --- a/Bugzilla/Attachment.pm +++ b/Bugzilla/Attachment.pm @@ -69,8 +69,8 @@ sub query # Retrieve a list of attachments for this bug and write them into an array # of hashes in which each hash represents a single attachment. &::SendSQL(" - SELECT attach_id, creation_ts, mimetype, description, ispatch, - isobsolete, isprivate, submitter_id + SELECT attach_id, DATE_FORMAT(creation_ts, '%Y.%m.%d %H:%i'), + mimetype, description, ispatch, isobsolete, isprivate, submitter_id FROM attachments WHERE bug_id = $bugid ORDER BY attach_id "); my @attachments = (); @@ -81,12 +81,6 @@ sub query $a{'ispatch'}, $a{'isobsolete'}, $a{'isprivate'}, $submitter_id) = &::FetchSQLData(); - # Format the attachment's creation/modification date into a standard - # format (YYYY-MM-DD HH:MM) - if ($a{'date'} =~ /^(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) { - $a{'date'} = "$1-$2-$3 $4:$5"; - } - # Retrieve a list of flags for this attachment. $a{'flags'} = Bugzilla::Flag::match({ 'attach_id' => $a{'attachid'} }); diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index f87c6fbc6..efd107c0a 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -25,11 +25,13 @@ package Bugzilla::Util; +use Bugzilla::Config; + use base qw(Exporter); @Bugzilla::Util::EXPORT = qw(is_tainted trick_taint detaint_natural html_quote url_quote value_quote lsearch max min - trim); + trim format_time); use strict; @@ -122,6 +124,36 @@ sub trim { return $str; } +# Bug 67077 +sub format_time { + my ($time) = @_; + + my ($year, $month, $day, $hour, $min); + if ($time =~ m/^\d{14}$/) { + # We appear to have a timestamp direct from MySQL + $year = substr($time,0,4); + $month = substr($time,4,2); + $day = substr($time,6,2); + $hour = substr($time,8,2); + $min = substr($time,10,2); + } + elsif ($time =~ m/^(\d{4})\.(\d{2})\.(\d{2}) (\d{2}):(\d{2})(:\d{2})?$/) { + $year = $1; + $month = $2; + $day = $3; + $hour = $4; + $min = $5; + } + else { + warn "Date/Time format ($time) unrecogonzied"; + } + + if (defined $year) { + $time = "$year-$month-$day $hour:$min " . &::Param('timezone'); + } + return $time; +} + 1; __END__ @@ -152,6 +184,9 @@ Bugzilla::Util - Generic utility functions for bugzilla # Functions for trimming variables $val = trim(" abc "); + # Functions for formatting time + format_time($time); + =head1 DESCRIPTION This package contains various utility functions which do not belong anywhere @@ -252,3 +287,17 @@ Removes any leading or trailing whitespace from a string. This routine does not modify the existing string. =back + +=head2 Formatting Time + +=over 4 + +=item C + +Takes a time and appends the timezone as defined in editparams.cgi. This routine +will be expanded in the future to adjust for user preferences regarding what +timezone to display times in. In the future, it may also allow for the time to be +shown in different formats. + +=back + -- cgit v1.2.3-24-g4f1b