summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2008-04-17 20:05:58 +0000
committeralecpl <alec@alec.pl>2008-04-17 20:05:58 +0000
commitea090ca09d2ee04c68c524f0e3c63de2fdb21a04 (patch)
tree4c52aea90a9e7ab2ae99c9c69cecb9daeab0ae7a
parentf294da0d9e2088fe663228f796cd8d2df2c03972 (diff)
- Fix non-RFC dates formatting (#1484901)
-rw-r--r--CHANGELOG1
-rw-r--r--program/include/main.inc16
-rw-r--r--program/steps/mail/func.inc4
3 files changed, 16 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 5644c3951..4886b3fd5 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,6 +5,7 @@ CHANGELOG RoundCube Webmail
----------
- Fix IMAP response in message body when message has no body (#1484964)
- Updated PEAR::Auth_SASL to 1.0.2
+- Fix non-RFC dates formatting (#1484901)
2008/04/16 (estadtherr)
----------
diff --git a/program/include/main.inc b/program/include/main.inc
index 09a53f0ad..b5004e899 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -1507,12 +1507,22 @@ function format_date($date, $format=NULL)
global $CONFIG, $sess_user_lang;
$ts = NULL;
-
+
if (is_numeric($date))
$ts = $date;
else if (!empty($date))
- $ts = @strtotime($date);
-
+ {
+ while (($ts = @strtotime($date))===false)
+ {
+ // if we have a date in non-rfc format
+ // remove token from the end and try again
+ $d = explode(' ', $date);
+ array_pop($d);
+ if (!$d) break;
+ $date = implode(' ', $d);
+ }
+ }
+
if (empty($ts))
return '';
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index b75b1150c..40c17b792 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -970,7 +970,7 @@ function rcmail_message_headers($attrib, $headers=NULL)
continue;
if ($hkey=='date' && !empty($headers[$hkey]))
- $header_value = format_date(strtotime($headers[$hkey]));
+ $header_value = format_date($headers[$hkey]);
else if (in_array($hkey, array('from', 'to', 'cc', 'bcc', 'reply-to')))
$header_value = Q(rcmail_address_string($headers[$hkey], NULL, $attrib['addicon']), 'show');
else
@@ -1500,7 +1500,7 @@ function rcmail_send_mdn($uid)
$body = rcube_label("yourmessage") . "\r\n\r\n" .
"\t" . rcube_label("to") . ': ' . rcube_imap::decode_mime_string($message['headers']->to, $message['headers']->charset) . "\r\n" .
"\t" . rcube_label("subject") . ': ' . $message['subject'] . "\r\n" .
- "\t" . rcube_label("sent") . ': ' . format_date(strtotime($message['headers']->date), $CONFIG['date_long']) . "\r\n" .
+ "\t" . rcube_label("sent") . ': ' . format_date($message['headers']->date, $CONFIG['date_long']) . "\r\n" .
"\r\n" . rcube_label("receiptnote") . "\r\n";
$ua = !empty($CONFIG['useragent']) ? $CONFIG['useragent'] : "RoundCube Webmail (Version ".RCMAIL_VERSION.")";