Créer des dates
Zend_Date permet de créer des instances d'elle même de
plusieurs manières différentes. Nous allons voir ceci.
Créer la date actuelle
La manière la plus simple de créer la date actuelle est d'utiliser le
constructeur new Zend_Date() ou encore la méthode statique
Zend_Date::now(). Toutes les deux retournent une instance de
Zend_Date avec la date actuelle. Elle est représentée par une
date calendaire et un temps pour le fuseau horaire actuel du serveur.
Créer une date par instance
Il n'y a pas de paramètres à passer au constructeur pour récupérer un objet
Zend_Date. Certains paramètres sont cependant disponibles et
nous y reviendrons.
Créer une date par méthode statique
La méthode statique now() a exactement le même effet qu'un
passage par le constructeur. Cependant la méthode statique, elle, ne peut pas
prendre de paramètres additionnels.
Créer une date depuis une base de données
Les bases de données sont souvent utilisées pour stocker des informations de
dates. Mais elles ont toutes une implémentation et une représentation qui leur est
propre. MSSQL par exemple manipule les dates de manières significativement différente
de MySQL, par exemple. Heureusement, Zend_Date aide à simplifier
le processus de création d'une date depuis une base de données.
Il est possible de demander au serveur de base de données de formater la date
dans un certain format. Mais ceci reste en général assez lourd, et doit être pensé à
chaque fois.
Nous avons donc des méthodes très pratiques et rapides dans
Zend_Date, pour récupérer les dates depuis une base de
données.
Création d'une date depuis une base de données
Toutes les bases de données doivent répondre extrêmement rapidement à leurs
requêtes. Pour stocker une date de manière optimale dans une base, il faut utiliser
un timestamp. En interne, tous les SGBDs représentent les dates sous forme de
timestamp (non Unix). Ainsi, leur demander un timestamp sera toujours plus
performant que de leur demander une date dans un format précis.
Création d'une date depuis une base de données dans un format
La sortie de chaque base de données est différente même si elles se
ressemblent. Cependant elles ont toutes des formats compatibles ISO.
La manière la plus simple de créer une date depuis une base de données est
d'utiliser Zend_Date::ISO_8601. Les SGBDs connus pour être
conformes pour Zend_Date::ISO_8601 sont MySQL, MSSQL par
exemple, mais ils sont tous capables de retourner une représentation
ISO8601 d'une donnée date. ISO8601 possède l'avantage
d'être lisible et compréhensible par un humain. Son inconvénient est qu'il est
légèrement plus lourd à traiter qu'un simple timestamp UNIX. En revanche ceux-ci ne
supportent pas les dates inférieures au 1er Janvier 1970.
Créer des dates depuis un tableau
Créer une date depuis un tableau est fréquent et pratique. Les clés du tableau
sont :
day : jour de la date, un
nombre
month : mois de la date, un
nombre
year : année complète de la
date
hour : heures de la date
minute : minutes de la date
second : secondes de la date
Créer une date depuis un tableau
En temps normal on utilisera un tableau avec toutes ses clés. Si une clé est
absente, la valeur qu'elle représente sera mise à la valeur zéro par défaut. Par
exemple une tableau ne comportant pas la clé "hour", donnera naissance
à une date ayant une partie heures à la valeur "0".
2006,
'month' => 4,
'day' => 18,
'hour' => 12,
'minute' => 3,
'second' => 10);
$date = new Zend_Date($datearray);
]]>
2006, 'month' => 4, 'day' => 18);
$date = new Zend_Date($datearray);
]]>