Revision: 45930
Updated Code
at May 11, 2011 07:35 by kendsnyder
Updated Code
<?php
function getTimezoneOptions() {
$abbr = DateTimeZone::listAbbreviations();
$options = array();
foreach ($abbr as $section => $zones) {
foreach ($zones as $zone) {
if (!$zone['timezone_id']) {
continue;
}
if (isset($options[$zone['timezone_id']])) {
continue;
}
if (strpos($zone['timezone_id'], 'GMT') !== false) {
// ignore the plain GMT zones
continue;
}
$offset = round($zone['offset'], 2) / 3600;
$hours = floor($offset);
$minutes = ($offset - $hours) * 60;
$minutes = $minutes == 0 ? '00' : $minutes;
// ignore the weird ones
if (!in_array($minutes, array('00','15','30','45'))) {
continue;
}
$sign = substr($hours,0,1) == '-' ? '-' : '+';
$hours = abs($hours);
$options[$zone['timezone_id']] = str_replace('_', ' ', $zone['timezone_id']) . " ($sign$hours:$minutes)";
}
}
asort($options);
return $options;
}
// example output:
Array
(
[Africa/Abidjan] => Africa/Abidjan (+0:00)
[Africa/Accra] => Africa/Accra (+0:00)
[Africa/Addis_Ababa] => Africa/Addis Ababa (+3:00)
[Africa/Algiers] => Africa/Algiers (+2:00)
[Africa/Asmara] => Africa/Asmara (+3:00)
...
)
Revision: 45929
Updated Code
at May 11, 2011 07:31 by kendsnyder
Updated Code
<?php
function getTimezoneOptions() {
$abbr = DateTimeZone::listAbbreviations();
$options = array();
foreach ($abbr as $section => $zones) {
foreach ($zones as $zone) {
if (!$zone['timezone_id']) {
continue;
}
if (isset($options[$zone['timezone_id']])) {
continue;
}
if (strpos($zone['timezone_id'], 'GMT') !== false) {
// ignore the plain GMT zones
continue;
}
$offset = round($zone['offset'], 2) / 3600;
$hours = floor($offset);
$minutes = ($offset - $hours) * 60;
$minutes = $minutes == 0 ? '00' : $minutes;
// ignore the weird ones
if (!in_array($minutes, array('00','15','30','45'))) {
continue;
}
$sign = substr($hours,0,1) == '-' ? '-' : '+';
$hours = abs($hours);
$options[$zone['timezone_id']] = str_replace('_', ' ', $zone['timezone_id']) . " ($sign$hours:$minutes)";
}
}
$options = array_unique($options);
sort($options);
return $options;
}
Revision: 45928
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 11, 2011 07:30 by kendsnyder
Initial Code
<?php
function getTimezoneOptions() {
$abbr = DateTimeZone::listAbbreviations();
$options = array();
foreach ($abbr as $section => $zones) {
foreach ($zones as $zone) {
if ($zone['timezone_id']) {
if (isset($options[$zone['timezone_id']])) {
continue;
}
if (strpos($zone['timezone_id'], 'GMT') !== false) {
// ignore the plain GMT zones
continue;
}
$offset = round($zone['offset'], 2) / 3600;
$hours = floor($offset);
$minutes = ($offset - $hours) * 60;
$minutes = $minutes == 0 ? '00' : $minutes;
// ignore the weird ones
if (!in_array($minutes, array('00','15','30','45'))) {
continue;
}
$sign = substr($hours,0,1) == '-' ? '-' : '+';
$hours = abs($hours);
$options[$zone['timezone_id']] = str_replace('_', ' ', $zone['timezone_id']) . " ($sign$hours:$minutes)";
}
}
}
$options = array_unique($options);
sort($options);
return $options;
}
Initial URL
Initial Description
Initial Title
PHP List of Known Time Zones
Initial Tags
date
Initial Language
PHP