|
|
@ -735,38 +735,36 @@ function format_date($date, $format=NULL, $convert=true)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
global $RCMAIL, $CONFIG;
|
|
|
|
global $RCMAIL, $CONFIG;
|
|
|
|
|
|
|
|
|
|
|
|
if (is_a($date, 'DateTime')) {
|
|
|
|
if (is_object($date) && is_a($date, 'DateTime')) {
|
|
|
|
$ts = $date->format('U');
|
|
|
|
$timestamp = $date->format('U');
|
|
|
|
$tzs = $date->getTimezone();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
$tzs = 'GMT';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!empty($date))
|
|
|
|
if (!empty($date))
|
|
|
|
$ts = rcube_strtotime($date);
|
|
|
|
$timestamp = rcube_strtotime($date);
|
|
|
|
|
|
|
|
|
|
|
|
if (empty($ts))
|
|
|
|
if (empty($timestamp))
|
|
|
|
return '';
|
|
|
|
return '';
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
$date = new DateTime("@".$ts);
|
|
|
|
$date = new DateTime("@".$timestamp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (Exception $e) {
|
|
|
|
catch (Exception $e) {
|
|
|
|
return '';
|
|
|
|
return '';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($convert) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
// convert to the right timezone
|
|
|
|
// convert to the right timezone
|
|
|
|
$stz = date_default_timezone_get();
|
|
|
|
$stz = date_default_timezone_get();
|
|
|
|
$tz = new DateTimeZone($convert ? $RCMAIL->config->get('timezone') : $tzs);
|
|
|
|
$tz = new DateTimeZone($RCMAIL->config->get('timezone'));
|
|
|
|
$date->setTimezone($tz);
|
|
|
|
$date->setTimezone($tz);
|
|
|
|
date_default_timezone_set($tz->getName());
|
|
|
|
date_default_timezone_set($tz->getName());
|
|
|
|
|
|
|
|
|
|
|
|
$timestamp = $date->format('U');
|
|
|
|
$timestamp = $date->format('U');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (Exception $e) {
|
|
|
|
catch (Exception $e) {
|
|
|
|
$timestamp = $ts;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// define date format depending on current time
|
|
|
|
// define date format depending on current time
|
|
|
@ -789,7 +787,11 @@ function format_date($date, $format=NULL, $convert=true)
|
|
|
|
// strftime() format
|
|
|
|
// strftime() format
|
|
|
|
if (preg_match('/%[a-z]+/i', $format)) {
|
|
|
|
if (preg_match('/%[a-z]+/i', $format)) {
|
|
|
|
$format = strftime($format, $timestamp);
|
|
|
|
$format = strftime($format, $timestamp);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($convert && $stz) {
|
|
|
|
date_default_timezone_set($stz);
|
|
|
|
date_default_timezone_set($stz);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return $today ? (rcube_label('today') . ' ' . $format) : $format;
|
|
|
|
return $today ? (rcube_label('today') . ' ' . $format) : $format;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -805,20 +807,20 @@ function format_date($date, $format=NULL, $convert=true)
|
|
|
|
$out .= $format[$i];
|
|
|
|
$out .= $format[$i];
|
|
|
|
// weekday (short)
|
|
|
|
// weekday (short)
|
|
|
|
else if ($format[$i]=='D')
|
|
|
|
else if ($format[$i]=='D')
|
|
|
|
$out .= rcube_label(strtolower($date->format('D')));
|
|
|
|
$out .= rcube_label(strtolower(date('D', $timestamp)));
|
|
|
|
// weekday long
|
|
|
|
// weekday long
|
|
|
|
else if ($format[$i]=='l')
|
|
|
|
else if ($format[$i]=='l')
|
|
|
|
$out .= rcube_label(strtolower($date->format('l')));
|
|
|
|
$out .= rcube_label(strtolower(date('l', $timestamp)));
|
|
|
|
// month name (short)
|
|
|
|
// month name (short)
|
|
|
|
else if ($format[$i]=='M')
|
|
|
|
else if ($format[$i]=='M')
|
|
|
|
$out .= rcube_label(strtolower($date->format('M')));
|
|
|
|
$out .= rcube_label(strtolower(date('M', $timestamp)));
|
|
|
|
// month name (long)
|
|
|
|
// month name (long)
|
|
|
|
else if ($format[$i]=='F')
|
|
|
|
else if ($format[$i]=='F')
|
|
|
|
$out .= rcube_label('long'.strtolower($date->format('M')));
|
|
|
|
$out .= rcube_label('long'.strtolower(date('M', $timestamp)));
|
|
|
|
else if ($format[$i]=='x')
|
|
|
|
else if ($format[$i]=='x')
|
|
|
|
$out .= strftime('%x %X', $timestamp);
|
|
|
|
$out .= strftime('%x %X', $timestamp);
|
|
|
|
else
|
|
|
|
else
|
|
|
|
$out .= $date->format($format[$i]);
|
|
|
|
$out .= date($format[$i], $timestamp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ($today) {
|
|
|
|
if ($today) {
|
|
|
@ -832,7 +834,10 @@ function format_date($date, $format=NULL, $convert=true)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($convert && $stz) {
|
|
|
|
date_default_timezone_set($stz);
|
|
|
|
date_default_timezone_set($stz);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return $out;
|
|
|
|
return $out;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|