Piwik\Plugins\SitesManager\API::getTimezonesList PHP Метод

getTimezonesList() публичный Метод

Used for addSite and updateSite
public getTimezonesList ( ) : array
Результат array of timezone strings
    public function getTimezonesList()
    {
        if (!SettingsServer::isTimezoneSupportEnabled()) {
            return array('UTC' => $this->getTimezonesListUTCOffsets());
        }
        $continents = array('Africa', 'America', 'Antarctica', 'Arctic', 'Asia', 'Atlantic', 'Australia', 'Europe', 'Indian', 'Pacific');
        $timezones = timezone_identifiers_list();
        $return = array();
        foreach ($timezones as $timezone) {
            // filter out timezones not recognized by strtotime()
            // @see http://bugs.php.net/46111
            $testDate = '2008-09-18 13:00:00 ' . $timezone;
            if (!strtotime($testDate)) {
                continue;
            }
            $timezoneExploded = explode('/', $timezone);
            $continent = $timezoneExploded[0];
            // only display timezones that are grouped by continent
            if (!in_array($continent, $continents)) {
                continue;
            }
            $city = $timezoneExploded[1];
            if (!empty($timezoneExploded[2])) {
                $city .= ' - ' . $timezoneExploded[2];
            }
            $city = str_replace('_', ' ', $city);
            $return[$continent][$timezone] = $city;
        }
        foreach ($continents as $continent) {
            if (!empty($return[$continent])) {
                ksort($return[$continent]);
            }
        }
        $return['UTC'] = $this->getTimezonesListUTCOffsets();
        return $return;
    }