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