Exemples concretsDans ce chapitre, nous décrirons plusieurs fonctionnalités disponibles dans Zend_Date. Ceci sera fait au travers d'exemples concrets. Vérifier des dates
La plupart du temps vous devrez traiter des dates issues d'entrées de vos
scripts, sous forme de chaînes de caractères. Le problème avec les chaînes est que l'on
ne sait pas si elles représentent réellement une date. Ainsi,
Zend_Date possède une méthode statique pour vérifier cela.
Zend_Locale a aussi une fonction
Le 3ème paramètre est aussi optionnel et peut être utilisé pour spécifier une locale. Celle-ci est nécessaire afin de normaliser les noms des mois et des jours. Avec le 3ème paramètre fourni, des dates comme "01.Jänner.2000" ou "01.January.2000" pourront être reconnues en fonction de la locale passée.
Example #1 Vérifier des dates
Levé et couché du soleilZend_Date possède aussi des fonctionnalités pour se renseigner sur le soleil. Il peut être utile dans une zone donnée, de savoir l'heure de levé et de couché du soleil. C'est très simple avec Zend_Date, il suffit de lui fournir une date, certes, mais aussi un endroit depuis lequel ces calculs seront faits. Comme presque personne ne connaît la localisation précise d'une ville sur la planète, nous avons aussi écrit une classe qui donne ces coordonnées, pour plus de 250 grandes villes et capitales. Ainsi la plupart des gens pourra utiliser des villes proches de chez eux. A cet effet, Zend_Date_Cities::getCityList peut être utilisée, cette méthode retourne les noms de toutes les villes prédéfinies dans la classe d'aide. Example #2 Récupérer toutes les villes disponibles
La localisation peut être récupérée avec Zend_Date_Cities::City(). Cette méthode prend en paramètre le nom d'une ville, tel que retourné par Zend_Date_Cities::getCityList(), et un second paramètre optionnel pour l'horizon.
Il y a 4 horizons définis, qui peuvent être utilisés avec des lieux pour
déterminer la date exacte de levé et couché du soleil. Le paramètre
"
Évidemment, un endroit personnalisé peut aussi être utilisé pour le calcul. Une
" Example #3 Trouver la localisation d'une ville
Dès lors, il faut créer un objet Zend_Date contenant la date dont on veut connaître les informations de levé et de couché du soleil. 3 méthodes nous seront proposées : getSunset(), getSunrise() et getSunInfo(). Ces 3 méthodes s'appliquent sur un objet Zend_Date et retournent un objet Zend_Date. Example #4 Calculer les informations relatives au soleil
Fuseaux horaires (Timezones)
Les zones de temps (Timezones) sont aussi importantes que les dates en
elles-mêmes. Il existe plusieurs zones de temps (fuseaux horaires) sur la planète, et
travailler avec des dates implique de définir un fuseau horaire pour cette date. Ceci
semble complexe mais c'est plutôt simple. Comme déjà dit dans le premier chapitre sur
Zend_Date, le fuseau horaire par défaut de PHP doit être
configuré. En général, le fichier Un objet Zend_Date encapsule son propre fuseau horaire. Même en changeant le fuseau après la création de l'objet, celui-ci s'en souviendra. De même, changer le fuseau via PHP n'aura aucun impact sur l'objet Zend_Date avec lequel un travail est en cours, c'est celui-ci qui va vous permettre via des méthodes de gérer son fuseau. getTimezone() retourne le fuseau horaire actuel sur lequel travaille Zend_Date. Souvenez vous que Zend_Date n'est pas lié aux mécanismes interne de PHP, ainsi le fuseau retourné peut être différent de celui sur lequel PHP est réglé. setTimezone($zone) change le fuseau horaire actuel de l'objet Zend_Date. Le fuseau ainsi fournit est toujours vérifié, s'il n'existe pas, une exception sera levée. Si vous ne spécifiez pas de fuseau à cette méthode, alors c'est le fuseau interne de PHP qui sera utilisé par défaut, comme c'est le cas lors de la création d'un objet Zend_Date banal. Example #5 Travailler avec les fuseaux horaires (timezones)
Zend_Date utilise toujours le fuseau par défaut (de PHP) lors de la création de l'instance. Remarquez que changer le fuseau de l'objet a un impact sur la date s'y trouvant. Une date est toujours exprimée relativement à un fuseau horaire, changer le fuseau dans l'objet ne change pas la date de l'objet, mais bien sa représentation. Rappelez vous qu'en interne, les dates sont représentées comme des timestamps GMT. Le fuseau donne une information de décalage par rapport à GMT, en positif ou négatif. Coupler le fuseau dans l'objet Zend_Date a un autre effet positif : il est possible de posséder plusieurs objets de date, avec chacun un fuseau horaire différent. Example #6 Plusieurs fuseaux horaires
|