Felix Riesterer: Zeitzonen in PHP5 - Auswahl wie zusammenstellen?

Beitrag lesen

Hallo Ingrid,

wenn man auf die passenden Suchbegriffe stößt, dann ist das alles wesentlich leichter.

Aktuell benutze ich (nach dieser Anleitung) die in PHP hinterlegten Werte (DateTimeZone::listIdentifiers), um daraus dynamisch eine Auswahlliste zu erzeugen:

$template = '<select name="timezones"></select>';  
  
$timezone_list = '';  
$c = '';  
  
foreach (DateTimeZone::listIdentifiers() as $v) {  
    if (preg_match( '~^(America|Antartica|Arctic|Asia|Atlantic|Europe|Indian|Pacific)/~', $v)) {  
        $e = preg_split('~/~', $v, 2, PREG_SPLIT_NO_EMPTY); // obtain continent, city  
  
        if ($c != $e[0]) {  
            if (!empty($c)) {  
                $timezone_list .= '</optgroup>';  
            }  
  
            $timezone_list .= sprintf(  
                '<optgroup label="%s">',  
                htmlspecialchars($e[0])  
            );  
        }  
  
        $city = $e[1];  
        $c = $e[0];  
  
        $timezone_list .= sprintf(  
            '<option value="%1$s">%2$s</option>',  
            htmlspecialchars($v),  
            htmlspecialchars($city)  
        );  
    }  
}  
  
$timezone_list = sprintf('%s</optgroup>', $timezone_list);  
  
$template = preg_replace(  
    '~(?is)(<select .*?name="timezone".*?>[\r\n])~',  
    '$1'.$timezone_list,  
    $template  
);

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)