/** * Set the timezone. * * @since 3.0.0 * * @param string $tz Timezone. */ public function set_timezone($tz = '') { $site_tz = esc_attr(simcal_get_wp_timezone()); if ($this->feed === 'grouped-calendars') { $this->timezone = $site_tz; return; } if (empty($tz)) { $timezone_setting = get_post_meta($this->id, '_feed_timezone_setting', true); if ('use_site' == $timezone_setting) { $tz = $site_tz; } elseif ('use_custom' == $timezone_setting) { $custom_timezone = esc_attr(get_post_meta($this->id, '_feed_timezone', true)); // One may be using a non standard timezone in GMT (UTC) offset format. if (strpos($custom_timezone, 'UTC+') === 0 || strpos($custom_timezone, 'UTC-') === 0) { $tz = simcal_get_timezone_from_gmt_offset(substr($custom_timezone, 3)); } else { $tz = !empty($custom_timezone) ? $custom_timezone : 'UTC'; } } $this->timezone = empty($tz) ? 'UTC' : $tz; return; } $this->site_timezone = $site_tz; $this->timezone = simcal_esc_timezone($tz, $this->timezone); }
/** * Set timezone. * * @since 3.0.0 * * @param string|\DateTimeZone $tz Timezone. * * @return Events */ public function set_timezone($tz) { if ($tz instanceof \DateTimeZone) { $tz = $tz->getName(); } $this->timezone = simcal_esc_timezone($tz, $this->timezone); return $this; }