Generate an array of time zones and their local time&date.
$blank: If evaluates true, prepend an empty time zone option to the array.
function system_time_zones($blank = NULL) {
$zonelist = timezone_identifiers_list();
$zones = $blank ? array(
'' => t('- None selected -'),
) : array();
foreach ($zonelist as $zone) {
// Because many time zones 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)) {
$zones[$zone] = t('@zone', array(
'@zone' => t(str_replace('_', ' ', $zone)),
));
}
}
// Sort the translated time zones alphabetically.
asort($zones);
return $zones;
}