Framework

Méthode Date::Date

Date
Date — Construit un objet de type date.


Description



Code PHP :
Date([int $format, [int $fuseau_horaire, [$autres_parametres]]])


Cette méthode de la classe Date permet de construire un objet Date à partir de différents formats et référentiels temporels.

Ce constructeur est un peu particulier puisqu'il peut prendre différents nombres de paramètres (la notion de surcharge n'existe pas en PHP, il faut donc la contourner).

Dès qu'on parlera de référentiel horaire, il s'agira d'une de ces 3 constantes :
  • TIMEZONE_SYSTEM quand l'heure est importée est au format système (par exemple provenant de la base de données)
  • TIMEZONE_SITE quand l'heure est au format du site (en pratique très rare)
  • TIMEZONE_USER quand l'heure importée est entrée par l'utilisateur

Vous trouverez plus d'informations sur ces référentiels horaire dans la description de la classe Date.


Voici le détail des différents mode de construction d'un objet Date :


Date courante




Sans aucun paramètre, il sera construit un objet dont la date est la date actuelle. La notion de référentiel temporaire n'intervient pas ici puisqu'il s'agit de l'heure système. Dans tous les autres cas il faudra faire intervenir le format depuis lequel on importe la date ainsi que le référentiel temporel.


Année mois jour




En utilisant DATE_YEAR_MONTH_DAY comme premier paramètre, vous construirez une date à partir de l'année, le mois et le jour. Il faudra alors en deuxième paramètre fournir le référentiel horaire. Ensuite vous utiliserez les 3 paramètres suivants pour indiquer dans l'ordre la date, le mois et le jour (ce sont des entiers).
Exemple :
Code PHP :
//On construit la date du 2 juin 2008
$date = new Date(DATE_YEAR_MONTH_DAY, TIMEZONE_USER, 2008, 6, 2);



Année mois jour heure minute seconde




En utilisant DATE_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND comme premier paramètre et en mettant le référentiel horaire en deuxième, vous pourrez construire une date précise à la seconde près. Le deuxième paramètre sera le référentiel horaire et les 6 suivants seront dans l'ordre l'année, le mois, le jour, l'heure, les minutes et les secondes.
Exemple :
Code PHP :
//On construit la date du 2 juin 2008 à 16 h 32 m 12s
$date = new Date(DATE_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, TIMEZONE_USER, 2008, 6, 2, 16, 32, 12);



A partir d'un timestamp Unix




Souvent les données temporelles sont stockées sous forme d'entier (timestamp Unix ou le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit). Vous pourrez construire une date à partir d'une telle valeur en utilisant DATE_TIMESTAMP en premier paramètre et le référentiel horaire en deuxième paramètre. Le dernier paramètre sera l'entier du timestamp. Généralement un timestamp est déjà dans le référentiel système, il conviendra donc de l'appeler en utilisant le référentiel système TIMEZONE_SYSTEM. N'utilisez pas d'autre référentiel si vous n'êtes pas certain de ce que vous faites, dans 99% des cas ce sera ce référentiel qu'il faudra utiliser.


A partir d'une chaîne utilisateur et une chaîne de référence




Vous pouvez aussi importer une date selon un formatage spécifique. Lorsque vous demandez à l'utilisateur de rentrer une date, il le fera en français par exemple sous la forme jour/mois/année. Vous pouvez construire une date à partir d'une telle chaîne de caractères en donnant la chaîne de référence qui doit être formatée comme ceci.
  • Vous devez mettre un 'd' où vous souhaitez récupérer le jour.
  • Vous devez mettre un 'm' où vous souhaitez récupérer le mois.
  • Vous devez mettre un 'y' où vous souhaitez récupérer l'année.

Cela donnera par exemple en français : d/m/y.

Il faudra donner DATE_FROM_STRING en premier paramètre, le référentiel horaire en deuxième, la chaîne contenant l'heure en troisième et la chaîne de référence en dernier.

Exemple :
Code PHP :
$date = new Date(DATE_FROM_STRING, TIMEZONE_USER, '12/06/2008', 'd/m/y');


Ici il faudra utiliser presque systématiquement le référentiel utilisateur.

Attention, le formatage des dates varie énormément selon les pays et langues. Il est donc bien entendu très déconseillé de procéder comme dans l'exemple en mettant une chaîne de référence "en dur", il sera intéressant de l'intégrer aux fichiers langues pour qu'elle soit traduite et adaptée au format linguistique.


Voir aussi



Format_date : Exportation d'une date vers une chaîne de caractères
Cette page a été vue 2938 fois