function TimeZoneFormHelper::getOptionsListByRegion
Same name and namespace in other branches
- 11.x core/lib/Drupal/Core/Datetime/TimeZoneFormHelper.php \Drupal\Core\Datetime\TimeZoneFormHelper::getOptionsListByRegion()
Generate an array of time zones names grouped by region.
This method retrieves the list of IANA time zones names that PHP is configured to use, for display to users. It does not return the backward compatible names (i.e., the ones defined in the back-zone file).
Parameters
bool $blank: (optional) If TRUE, prepend an empty time zone option to the array.
Return value
array An nested array containing time zones, keyed by the system name. The keys are valid time zone identifiers provided by \DateTimeZone::listIdentifiers()
9 calls to TimeZoneFormHelper::getOptionsListByRegion()
- AccountForm::form in core/
modules/ user/ src/ AccountForm.php - Date::buildOptionsForm in core/
modules/ views/ src/ Plugin/ views/ field/ Date.php - DateTimeFormatterBase::settingsForm in core/
modules/ datetime/ src/ Plugin/ Field/ FieldFormatter/ DateTimeFormatterBase.php - RegionalForm::buildForm in core/
modules/ system/ src/ Form/ RegionalForm.php - SiteConfigureForm::buildForm in core/
lib/ Drupal/ Core/ Installer/ Form/ SiteConfigureForm.php
File
-
core/
lib/ Drupal/ Core/ Datetime/ TimeZoneFormHelper.php, line 53
Class
- TimeZoneFormHelper
- Helper class for dealing with timezones.
Namespace
Drupal\Core\DatetimeCode
public static function getOptionsListByRegion(bool $blank = FALSE) : array {
$zones = static::getOptionsList($blank);
$grouped_zones = [];
foreach ($zones as $key => $value) {
$split = explode('/', $value);
$city = array_pop($split);
$region = array_shift($split);
if (!empty($region)) {
$grouped_zones[$region][$key] = empty($split) ? $city : $city . ' (' . implode('/', $split) . ')';
}
else {
$grouped_zones[$key] = $value;
}
}
foreach ($grouped_zones as $key => $value) {
if (is_array($grouped_zones[$key])) {
asort($grouped_zones[$key]);
}
}
return $grouped_zones;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.