Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Settings/src/Setting/TimezonesSetting.php
<?php

namespace Croogo\Settings\Setting;

/**
 * Class TimezonesSetting
 */
class TimezonesSetting
{
    public function
__invoke()
    {
       
$continents = [
           
'Africa', 'America', 'Antarctica', 'Artic', 'Asia', 'Atlantic', 'Australia', 'Europe', 'Indian', 'Pacific'
       
];
       
$zones = timezone_identifiers_list();
       
$locations = [];
        foreach (
$zones as $zone) {
            if (
strpos($zone, '/') === false) {
               
$locations[$zone] = $zone;
                continue;
            }
            list(
$continent, $city) = explode('/', $zone); // 0 => Continent, 1 => City

            // Only use "friendly" continent names
           
if (in_array($continent, $continents)) {
                if (isset(
$city) != '') {
                   
$locations[$continent][$continent . '/' . $city] = str_replace('_', ' ', $city); // Creates array(DateTimeZone => 'Friendly name')
               
}
            }
        }

        return
$locations;
    }
}