1 date.inc | date_timezone_names($required = FALSE, $refresh = FALSE) |
Returns a translated array of timezone names.
Cache the untranslated array, make the translated array a static variable.
Parameters
bool $required: (optional) If FALSE, the returned array will include a blank value. Defaults to FALSE.
bool $refresh: (optional) Whether to refresh the list. Defaults to FALSE.
Return value
array: An array of timezone names.
File
- core/
includes/ date.inc, line 551 - Date API functions.
Code
function date_timezone_names($required = FALSE, $refresh = FALSE) {
static $zone_names;
if (empty($zone_names) || $refresh) {
$cached = cache_get('date_timezone_identifiers_list');
$zone_names = !empty($cached) ? $cached->data : array();
if ($refresh || empty($cached) || empty($zone_names)) {
$data = timezone_identifiers_list();
asort($data);
foreach ($data as $delta => $zone) {
// Because many timezones exist in PHP only for backward compatibility
// reasons and should not be used, the list is filtered by a regular
// expression.
if (preg_match('!^((Africa|America|Antarctica|Arctic|Asia|Atlantic|Australia|Europe|Indian|Pacific)/|UTC$)!', $zone)) {
$zone_names[$zone] = $zone;
}
}
if (!empty($zone_names)) {
cache_set('date_timezone_identifiers_list', $zone_names);
}
}
foreach ($zone_names as $zone) {
$zone_names[$zone] = t('!timezone', array('!timezone' => t($zone)));
}
}
$none = array('' => '');
return !$required ? $none + $zone_names : $zone_names;
}