timezone_identifiers_list

(PHP 5 >= 5.1.0RC1)

timezone_identifiers_list -- Returns numerically index array with all timezone identifiers

说明

array timezone_identifiers_list ( void )

array DateTimeZone::listIdentifiers ( void )

返回值

Returns array on success or FALSE on failure.

范例

例 1. A timezone_identifiers_list() example

<?php
$timezone_identifiers
= DateTimeZone::listIdentifiers();
for (
$i=0; $i < 5; $i++) {
    echo
"$timezone_identifiers[$i]\n";
}
?>

上例的输出类似于:

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmera


add a note add a note User Contributed Notes
spam1 at dyden dot de
04-Jul-2007 01:22
Hi!
Since many are going to use these timezones for saving their users' timezones, I wrote a little something that builds the select-field for this purpose and removes the "Others" that are not supposed to be used.
Note that <optgroup> is not widely supported and causes a bug in Opera 6.
I know this is easy to do, but you need to examine the timezones first (for example to remember that Istanbul is in the category for two continents - of course).

<select name="timezonechoice" size="10"><?php
function timezonechoice($selectedzone) {
  
$all = timezone_identifiers_list();
  
$i = 0;
   foreach(
$all AS $zone) {
      
$zone = explode('/',$zone);
      
$zonen[$i]['continent'] = $zone[0];
      
$zonen[$i]['city'] = $zone[1];
      
$i++;
       }
  
asort($zonen);
   foreach(
$zonen AS $zone) {
  
extract($zone);
       if(
$continent == 'Africa' OR $continent == 'America' OR $continent == 'Antarctica' OR $continent == 'Arctic' OR $continent == 'Asia' OR $continent == 'Atlantic' OR $continent == 'Australia' OR $continent == 'Europe' OR $continent == 'Indian' OR $continent == 'Pacific') {
           if(!isset(
$letztercontinent)) $structure .= '
<optgroup label="'
.$continent.'">'; // continent
          
elseif($letztercontinent!=$continent) $structure .= '</optgroup>
<optgroup label="'
.$continent.'">'; // continent
          
if($city!='') $structure .= "
<option "
.((($continent.'/'.$city)==$selectedzone)?'selected="selected "':'')." value=\"".($continent.'/'.$city)."\">".str_replace('_',' ',$city)."</option>"; //Timezone
          
else $structure .= "
<option "
.(($continent==$selectedzone)?'selected="selected "':'')." value=\"".$continent."\">".$continent."</option>"; //Timezone
          
$letztercontinent = $continent;
           }
       }
  
$structure .= '
</optgroup>'
;
   return
$structure;
   }
echo
timezonechoice('Europe/Berlin');
?></select>

Hope this saves someone some effort.