diff --git a/plugins/libkolab/lib/kolab_format.php b/plugins/libkolab/lib/kolab_format.php index 0f19e1a9..c72f9ac3 100644 --- a/plugins/libkolab/lib/kolab_format.php +++ b/plugins/libkolab/lib/kolab_format.php @@ -61,8 +61,11 @@ abstract class kolab_format if (!$tz) $tz = self::$timezone; $result = new cDateTime(); - if (is_numeric($datetime)) - $datetime = new DateTime('@'.$datetime, $tz); + // got a unix timestamp (in UTC) + if (is_numeric($datetime)) { + $datetime = new DateTime('@'.$datetime, new DateTimeZone('UTC')); + if ($tz) $datetime->setTimezone($tz); + } else if (is_string($datetime) && strlen($datetime)) $datetime = new DateTime($datetime, $tz); @@ -71,6 +74,7 @@ abstract class kolab_format if (!$dateonly) $result->setTime($datetime->format('G'), $datetime->format('i'), $datetime->format('s')); + if ($tz) $result->setTimezone($tz->getName()); } diff --git a/plugins/libkolab/lib/kolab_format_contact.php b/plugins/libkolab/lib/kolab_format_contact.php index eb09d64a..02e3e899 100644 --- a/plugins/libkolab/lib/kolab_format_contact.php +++ b/plugins/libkolab/lib/kolab_format_contact.php @@ -274,6 +274,7 @@ class kolab_format_contact extends kolab_format // cache this data + unset($object['_formatobj']); $this->data = $object; } diff --git a/plugins/libkolab/lib/kolab_format_distributionlist.php b/plugins/libkolab/lib/kolab_format_distributionlist.php index 9fe28c19..3c5047c3 100644 --- a/plugins/libkolab/lib/kolab_format_distributionlist.php +++ b/plugins/libkolab/lib/kolab_format_distributionlist.php @@ -77,6 +77,10 @@ class kolab_format_distributionlist extends kolab_format } $this->obj->setMembers($members); + + // cache this data + unset($object['_formatobj']); + $this->data = $object; } public function is_valid()