summaryrefslogtreecommitdiff
path: root/program/include/main.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/main.inc')
-rw-r--r--program/include/main.inc33
1 files changed, 18 insertions, 15 deletions
diff --git a/program/include/main.inc b/program/include/main.inc
index f9cc4331b..7be7488b5 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -975,7 +975,7 @@ function parse_attrib_string($str)
* @return string Formatted date string
*/
function format_date($date, $format=NULL)
- {
+{
global $CONFIG;
$ts = NULL;
@@ -999,7 +999,7 @@ function format_date($date, $format=NULL)
if (empty($ts))
return '';
-
+
// get user's timezone
if ($CONFIG['timezone'] === 'auto')
$tz = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : date('Z')/3600;
@@ -1011,7 +1011,7 @@ function format_date($date, $format=NULL)
// convert time to user's timezone
$timestamp = $ts - date('Z', $ts) + ($tz * 3600);
-
+
// get current timestamp in user's timezone
$now = time(); // local time
$now -= (int)date('Z'); // make GMT time
@@ -1019,30 +1019,33 @@ function format_date($date, $format=NULL)
$now_date = getdate($now);
$today_limit = mktime(0, 0, 0, $now_date['mon'], $now_date['mday'], $now_date['year']);
- $week_limit = mktime(0, 0, 0, $now_date['mon'], $now_date['mday']-6, $now_date['year']);
+ $week_limit = mktime(0, 0, 0, $now_date['mon'], $now_date['mday']-6, $now_date['year']);
// define date format depending on current time
if (!$format) {
- if ($CONFIG['prettydate'] && $timestamp > $today_limit && $timestamp < $now)
- return sprintf('%s %s', rcube_label('today'), date($CONFIG['date_today'] ? $CONFIG['date_today'] : 'H:i', $timestamp));
+ if ($CONFIG['prettydate'] && $timestamp > $today_limit && $timestamp < $now) {
+ $format = $CONFIG['date_today'] ? $CONFIG['date_today'] : 'H:i';
+ $today = true;
+ }
else if ($CONFIG['prettydate'] && $timestamp > $week_limit && $timestamp < $now)
$format = $CONFIG['date_short'] ? $CONFIG['date_short'] : 'D H:i';
else
$format = $CONFIG['date_long'] ? $CONFIG['date_long'] : 'd.m.Y H:i';
- }
+ }
// strftime() format
- if (preg_match('/%[a-z]+/i', $format))
- return strftime($format, $timestamp);
+ if (preg_match('/%[a-z]+/i', $format)) {
+ $format = strftime($format, $timestamp);
+ return $today ? (rcube_label('today') . ' ' . $format) : $format;
+ }
// parse format string manually in order to provide localized weekday and month names
// an alternative would be to convert the date() format string to fit with strftime()
$out = '';
- for($i=0; $i<strlen($format); $i++)
- {
+ for($i=0; $i<strlen($format); $i++) {
if ($format{$i}=='\\') // skip escape chars
continue;
-
+
// write char "as-is"
if ($format{$i}==' ' || $format{$i-1}=='\\')
$out .= $format{$i};
@@ -1062,11 +1065,11 @@ function format_date($date, $format=NULL)
$out .= strftime('%x %X', $timestamp);
else
$out .= date($format{$i}, $timestamp);
- }
-
- return $out;
}
+ return $today ? (rcube_label('today') . ' ' . $out) : $out;
+}
+
/**
* Compose a valid representation of name and e-mail address