Framework

Classe Date

Table des matières
La classe Date permet de manipuler des données temporelles (dates, timestamp, dates avec heure précise...) dans différents référentiels horaire.

Les référentiels temporels



Dans un monde internationnal tel qu'Internet, des gens de toutes les nationnalités et de tous les pays se retrouvent sur un même site, donc le serveur peut être basé n'importe où. Il est donc important d'adapter les dates à l'utilisateur (et notamment à son fuseau horaire). Cette classe gère aussi le changement d'heure (heure d'été/ heure d'hiver).

Les différents référentiels



La classe Date gère la notion de fuseau horaire à partir de différents référentiels qui sont les suivants :
  • L'heure système (ou l'heure du serveur). Toutes les données manipulées par l'application doivent être en heure système. En interne la classe Date manipule le temps selon le référentiel du système, et tout enregistrement dans la base de données ou dans un fichier quelconque doit se faire dans ce référentiel. Cela permet d'avoir des données homogènes. Ce fuseau horaire est donné automatiquement par le serveur.
  • L'heure du site. Elle est dans le fuseau horaire de l'endroit où est localisé le site. Par exemple un site français sera à l'heure française, c'est à dire en GMT + 1 en hiver. Cette référence sera par ailleurs utilisée pour les invités (visiteurs non enregistrés). Le fuseau horaire du site est choisi par l'administrateur.
  • L'heure de l'utilisateur. Chaque utilisateur enregistré choisit son fuseau horaire, les autres auront le référentiel par défaut, à savoir celui du site.


Quel référentiel utiliser ?



Voilà ce qu'il est important de retenir.

L'affichage d'une date se fait quasiment systématiquement dans le référentiel utilisateur. Lorsque l'utilisateur entre une date, elle sera aussi dans son propre référentiel.

L'enregistrement dans la base de données ou dans un fichier texte se fait dans le référentiel système.
Toute date doit être enregistrée dans le référentiel système, c'est le seul référentiel qui est commun tous les utilisateurs et qui fournira donc une heure équivalente à chacun d'entre eux. Il est impératif de respecter cette règle.

Formatage des dates en entrée/sortie



Cette classe permet de formater les dates en entrée et en sortie selon différents modes.

En entrée



A l'importation :
  • A partir d'un timestamp.
  • 3 entiers représentant l'année, le mois et le jour.
  • 6 entiers représentant l'année, le mois, le jour, les heures, les minutes et les secondes.
  • A partir d'une date dont le patron est choisi et donné en paramètre. Exemple 19/06/2008 en donnant d/m/y.


En sortie



A l'exportation :
  • Mois année, ex : 06/2008
  • Jour mois année, ex : 12/06/08
  • Avec l'heure en plus, ex : 12/06/2008 à 13h20
  • Timestamp


Les formatages spécifiques sont adaptés à la langue de l'utilisateur.

Chargement de la classe



Cette classe se trouve dans le dossier util du framework, donc le chemin complet est kernel/framework/util/date.class.php.

Il faut donc utiliser le code suivant pour la charger :
Code PHP :
include_once('../kernel/framework/util/date.class.php');
//Ou plus généralement si on n'est pas à l'emplacement traditionnel (racine du site plus un dossier)
include_once(PATH_TO_ROOT . '/kernel/framework/util/date.class.php');


Méthodes disponibles



  • Date : Constructeur de la classe Date
  • Format_date : Permet de formater une date vers différents formats
  • Get_timestamp : Renvoie le timestamp correspondant à la date
  • Get_year: Renvoie l'année de la date
  • Get_month: Renvoie le mois
  • Get_day : Renvoie le jour
  • Get_hours : Renvoie l'heure
  • Get_minutes : Renvoie les minutes
  • Get_seconds : Renvoie les secondes
  • To_date : Renvoie la chaîne formatée pour l'enregistrement dans une base de données (YYYY-mm-dd).
Cette page a été vue 2855 fois