Version 1.0.0 - 2006/01/31 |
|
4.5 Date et heure
Lorsque l’on cherche à développer un
framework, le sujet de la représentation de la date
mérite une attention particulière.
L’écriture d’une date diffère
selon les pays et les bases de données. La norme SQL92
à fixé le format « officiel »
du timestamp. Mais pour la représentation en tant que
variable, les logiciels divergent légèrement.
Nous ne nous sommes donc pas permis d’utiliser directement
les objets renvoyer par ces derniers, dans le risque de devoir
gérer trop de cas particuliers. La solution retenu a
été de définir nous même
notre propre représentation du timestamp. Une classe
conçue pour recadrer les divergences entre SGBD et
s’adapté pour traiter toutes les
opérations courantes sur les dates et les heures. La classe
NoasTimestamp est très complète. Vous pouvez
effectuer toutes les opérations plus et moins courantes.
Comme nous démontre le listing suivant, il existe plusieurs
façon d’obtenir une instance de NoasTimestamp.
Vous pouvez ensuite leur ajouter des heures, des minutes, effectuer des
comparaisons ou formater des chaînes de
caractères. Vous pouvez également faire des
testes pratiques comme déterminer s’il
s’agit d’une date du jour.
Juste pour information, nous tenions à préciser
que la classe NoasTimestamp utilise en interne une valeur
entière qui est le timestamp UNIX.
Utilisation du timestamp
<?php
…
$oNow = NoasTimestamp::getTimestamp();
$oToday = NoasTimestamp::getToDay();
$oTomorrow =
NoasTimestamp::getTomorrow();
$oYesterday =
NoasTimestamp::getYesterday();
$oNext = NoasTimestamp::getTimestamp();
$oNext->addHours(2);
$oNext->addMinutes(40);
$oNext->addSeconds(12);
$oNext->addDays(7);
$oNext->addMonths(3);
$oNext->addYears(1);
$oBirthDay =
NoasTimestamp::parse("1979-03-28 05:45:30");
self::assertTrue("isTimestamp()",
NoasTimestamp::isTimestamp($oBirthDay->getValueAsString()));
self::assertTrue("compareToObject()",
$oBirthDay->compareToObject($oNow) < 0);
self::assertTrue("compareToObject()",
$oNow->compareToObject($oBirthDay) > 0);
self::assertTrue("isToDay()",
$oNow->isToDay());
$timeAsString =
$oNow->format("H:i:s, l d F Y"));
…
?>
|
© 2005 Réoka Djohou, tous droits réservés. |