Programmer's Reference Guide
| Point de vue théorique |
Methodes de base
Les sections qui suivent montrent l'utilisation de base de Zend_Date au travers d'exemples.
Dans ce manuel, une "date" représente toujours une date calendaire et un temps, même lorsque cela n'est pas
mentionné spécifiquement. La partie (date calendaire, ou temps) non spécifiée prend la valeur par défaut
"zero". Ainsi additionner une date ayant une date calendaire mais pas de temps, à un temps "12heures"
n'ayant pas de date calendaire, résultera en la combinaison des deux : la date calendaire connue avec une
partie temps de 12 heures, soit midi.
Paramétrer une date sans temps implique un temps par défaut de 00:00:00. Inversement paramétrer un temps mais sans date calendaire lui vera affectée la valeur de 01.01.1970 plus le temps. La plupart des ordinateurs entendent la date "nulle" comme étant la première seconde de l'année 1970. La notion de timestamp est un nombre de secondes depuis cette date dite "EPOCH".
La date courante
Sans argument, construire un objet correspond à la date courante du système d'exploitation telle que retournée
par la fonction PHP time(), pour obtenir un
» timestamp UNIX pour l'objet. Prenez garde à la
locale et au fuseau horaire(timezone) par défaut
.
Exemple #1 Créer la date courante
<?php
require_once 'Zend/Date.php';
$date = new Zend_Date();
// Affiche le timestamp actuel
print $date;
Zend_Date : exemples
Les exemples sont le meilleur moyen de prendre en main Zend_Date, particulièrement pour les personnes
non habituées à la notion de date dans d'autres langages ou frameworks.
Afficher une date
La date contenue dans l'objet Zend_Date est obtenue en tant qu'entier ou chaine de caractères
localisé, grâce à la méthode get(). Il y a des options disponibles, nous les détaillerons
utlérieurement.
Exemple #2 get() - affiche une date
<?php
require_once 'Zend/Date.php';
$date = new Zend_Date();
// Affiche la date désirée
print $date->get();
Spécifier une date
La méthode set() modifie la date dans l'objet et retourne la date affectée comme un timestamp
(et non un objet). Là aussi des options sont disponibles, nous y reviendrons.
Exemple #3 set() - affecte une date
<?php
require_once 'Zend/Date.php';
$date = new Zend_Date();
// Affecter une nouvelle date
$date->set('13:00:00',Zend_Date::TIMES);
print $date->get(Zend_Date::W3C);
Ajouter et soustraire des dates
Ajouter deux dates avec add() signifie souvent ajouter une date réelle plus un timestamp
artificiel représentant une partie de date, comme 12 heures par exemple. add() et
sub() utilisent les mêmes paramètres que set(), sur lesquels nous reviendrons
plus tard.
Exemple #4 add() - ajouter des dates
<?php
require_once 'Zend/Date.php';
$date = new Zend_Date();
// modifie $date en ajoutant 12 heures
$date->add('12:00:00', Zend_Date::TIMES);
echo "Date via get() = ", $date->get(Zend_Date::W3C), "\n";
// utilise __toString()
echo "Date via toString() = ", $date, "\n";
Comparaison de dates
Toutes les méthodes basiques de Zend_Date peuvent opérer sur des dates complètes, ou des
parties de dates. Par exemple, comparer la date dans l'objet à une certaines valeur de minutes, peut
être effectué grâce à la méthode compare().
Exemple #5 compare() - comparer des dates
<?php
require_once 'Zend/Date.php';
$date = new Zend_Date(); // date actuelle
// Comparaison des 2 temps
if ($date->compare(10, Zend_Date::MINUTE) == -1) {
print "Cette heure n'a pas encore dépassé 10 minutes";
} else {
print "Cette heure a au plus dépassé les 10 minutes";
}
Pour demander une simple égalité, utilisez equals(), qui retourne un booléen.
Exemple #6 equals() - identifie une date ou partie de date
<?php
require_once 'Zend/Date.php';
$date = new Zend_Date(); // date actuelle
// Identification, demande d'égalité
if ($date->equals(10, Zend_Date::HOUR)) {
print "Il est 10 heures.";
} else {
print "Il n'est pas 10 heures.";
}
| Point de vue théorique |
