/** * Setup user timezone if set and valid, otherwise global default timezone * * @return self * @see ApplicationBootstrap::setupTimezone */ protected function setupTimezone() { if ($this->user !== null && $this->user->getPreferences() !== null) { $userTimezone = $this->user->getPreferences()->get('app.timezone'); } else { $userTimezone = null; } try { DateTimeFactory::setConfig(array('timezone' => $userTimezone)); date_default_timezone_set($userTimezone); } catch (ConfigurationError $e) { return parent::setupTimezone(); } return $this; }