2010-10-06 14 views
3

J'essaie d'avoir une liste de tous les fuseaux horaires les plus communs pour un composant de l'interface utilisateur. En creusant dans le Zend Framework, je trouve que supplementalData.xml (utilisé par le composant Zend_Locale) a une liste de metazones, avec des noms préférees de fuseau horaire de base de données TZComment puis-je obtenir la liste des métazones de Zend_Locale de Zend Framework?

<mapTimezones type="metazones"> 
     <mapZone other="Acre" territory="001" type="America/Rio_Branco"/> 
     <mapZone other="Afghanistan" territory="001" type="Asia/Kabul"/> 
     <mapZone other="Africa_Central" territory="001" type="Africa/Maputo"/> 
     <mapZone other="Africa_Central" territory="BI" type="Africa/Bujumbura"/> 
     <mapZone other="Africa_Central" territory="BW" type="Africa/Gaborone"/> 
     <mapZone other="Africa_Central" territory="CD" type="Africa/Lubumbashi"/> 
     (...) 

Je pense que cela pourrait être un bon ajustement pour mes besoins et j'aimerais que cette liste soit extraite. Plutôt que de pirater ma version de la bibliothèque, je voudrais savoir s'il existe un moyen d'obtenir cette liste par des moyens normaux (il ne semble pas y avoir de moyen et cette information sur les métazones ne semble pas être interrogée nulle part).

Merci!

Répondre

1

Je ne suis pas sûr que l'un que vous recherchez, mais votre meilleur candidat est

$locale->getTranslationList('TerritoryToTimezone'); 

TerritoryToTimezone peut être échangé avec l'un des identifiants décrits dans le manuel de référence pour Zend_Locale subchapter Obtaining Localized Data.

Si aucun de ceux-ci ne vous donne ce que vous cherchez, vous pouvez toujours use DOM to parse the XML.

+0

Probablement mon meilleur pari alors. Je vais étendre la classe 'Zend_Locale_Data' pour fournir un support pour ce dont j'ai besoin. –

0

Vous pouvez utiliser timezone_abbreviations_list(), timezone_identifiers_list() ... dernier ensemble de fonctions here