/** * get datetime from sabredav datetime property (user TZ is fallback) * * @param Sabre\VObject\Property $dateTimeProperty * @param boolean $_useUserTZ * @return Tinebase_DateTime * * @todo try to guess some common timezones */ protected function _convertToTinebaseDateTime(\Sabre\VObject\Property $dateTimeProperty, $_useUserTZ = FALSE) { $defaultTimezone = date_default_timezone_get(); date_default_timezone_set((string) Tinebase_Core::getUserTimezone()); if ($dateTimeProperty instanceof Sabre\VObject\Property\ICalendar\DateTime) { $dateTime = $dateTimeProperty->getDateTime(); $tz = $_useUserTZ || isset($dateTimeProperty['VALUE']) && strtoupper($dateTimeProperty['VALUE']) == 'DATE' ? (string) Tinebase_Core::getUserTimezone() : $dateTime->getTimezone(); $result = new Tinebase_DateTime($dateTime->format(Tinebase_Record_Abstract::ISO8601LONG), $tz); } else { $result = new Tinebase_DateTime($dateTimeProperty->getValue()); } date_default_timezone_set($defaultTimezone); return $result; }