From a621a9d7ecf334c4894ef8f5168eb6208e5ae0e4 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Wed, 14 Mar 2012 17:33:05 -0400 Subject: [PATCH] Accept DateTime object as input to format_date() --- program/include/main.inc | 32 ++++++++++++++++++++------------ 1 files changed, 20 insertions(+), 12 deletions(-) diff --git a/program/include/main.inc b/program/include/main.inc index 798a1fe..ecb46ab 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -725,7 +725,7 @@ * Convert the given date to a human readable form * This uses the date formatting properties from config * - * @param mixed Date representation (string or timestamp) + * @param mixed Date representation (string, timestamp or DateTime object) * @param string Date format to use * @param bool Enables date convertion according to user timezone * @@ -735,23 +735,31 @@ { global $RCMAIL, $CONFIG; - if (!empty($date)) - $ts = rcube_strtotime($date); - - if (empty($ts)) - return ''; - - try { - $date = new DateTime("@".$ts); + if (is_a($date, 'DateTime')) { + $ts = $date->format('U'); + $tzs = $date->getTimezone(); } - catch (Exception $e) { - return ''; + else { + $tzs = 'GMT'; + + if (!empty($date)) + $ts = rcube_strtotime($date); + + if (empty($ts)) + return ''; + + try { + $date = new DateTime("@".$ts); + } + catch (Exception $e) { + return ''; + } } try { // convert to the right timezone $stz = date_default_timezone_get(); - $tz = new DateTimeZone($convert ? $RCMAIL->config->get('timezone') : 'GMT'); + $tz = new DateTimeZone($convert ? $RCMAIL->config->get('timezone') : $tzs); $date->setTimezone($tz); date_default_timezone_set($tz->getName()); -- Gitblit v1.9.1