note 76192 deleted from function.timezone-identifiers-list by derick

From: Date: Tue, 13 May 2008 20:16:25 +0000
Subject: note 76192 deleted from function.timezone-identifiers-list by derick
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-139357@lists.php.net to get a copy of this message
Note Submitter: spam1 at dyden dot de ---- 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.

« previous php.notes (#139357) next »