Date et heure Ce module est conservé pour des raisons historiques. Pour les nouvelles applications il est préférable d'utiliser les timestamps unix qui sont gérés directement par les fonctions PHP et qui présentent l'avantage d'être standards. |
La fonction now permet d'obtenir la date et l'heure locale au format AAAAMMJJhhmmss c'est à dire: l'année sur 4 chiffres et le mois, le jour, les heures, minutes et secondes sur 2 chiffres (ex: 20020814203015 pour le 14/08/2002 à 20:30 et 15 secondes. Elle ne prend pas de paramètre.
Exemple :
~now()
Le résultat est quelque chose de cette forme là:
20100827184709
Il existe 5 fonctions pour manipuler une date au format AAAAMMJJhhmmss ou au format ISO AAAA-MM-JJ HH:MM:SS.
Ces fonctions sont :
- ~timestamp2day
- ~timestamp2month
- ~timestamp2year
- ~timestamp2hhmm
- ~timestamp2hhmmss
Elles prennent un seul paramètre : la date à traiter.
Exemples :
~timestamp2month('20100827184709') => 08
~timestamp2hhmmss('20100827184709') => 18:47:09
~timestamp2year('20100827184709') => 2010
La fonction ~format_timestamp() prend plusieurs paramètres. Le premier est le format de destination, le deuxième la date à traiter (toujours aux formats AAAAMMJJhhmmss ou AAAA-MM-JJ HH:MM:SS).
~format_timestamp('%d/%m/%y %H:%M','20100827184709')
Cette commande donnera :
27/08/10 18:47
Les caractères suivants sont utilisés pour spécifier le format de la date :
%a - nom abrégé du jour de la semaine (local).
%A - nom complet du jour de la semaine (local).
%b - nom abrégé du mois (local).
%B - nom complet du mois (local).
%c - représentation préférée pour les dates et heures, en local.
%C - numéro de siècle (l'année, divisée par 100 et arrondie entre 00 et 99)
%d - jour du mois en numérique (intervalle 01 à 31)
%D - identique à %m/%d/%y
%e - numéro du jour du mois. Les chiffres sont précédés d'un espace (de ' 1' à '31')
%h - identique à %b
%H - heure de la journée en numérique, et sur 24-heures (intervalle de 00 à 23)
%I - heure de la journée en numérique, et sur 12-heures (intervalle 01 à 12)
%j - jour de l'année, en numérique (intervalle 001 à 366)
%m - mois en numérique (intervalle 1 à 12)
%M - minute en numérique
%n - newline character
%p - soit `am' ou `pm' en fonction de l'heure absolue, ou en fonction des valeurs enregistrées en local.
%r - l'heure au format a.m. et p.m.
%R - l'heure au format 24h
%S - secondes en numérique
%t - tabulation
%T - l'heure actuelle (égal à %H:%M:%S)
%u - le numéro de jour dans la semaine, de 1 à 7. (1 représente Lundi)
%U - numéro de semaine dans l'année, en considérant le premier dimanche de l'année comme le premier jour de la première semaine.
%V - le numéro de semaine comme défini dans l'ISO 8601:1988, sous forme décimale, de 01 à 53. La semaine 1 est la première semaine qui a plus de 4 jours dans l'année courante, et dont Lundi est le premier jour.
%W - numéro de semaine dans l'année, en considérant le premier lundi de l'année comme le premier jour de la première semaine
%w - jour de la semaine, numérique, avec Dimanche = 0
%x - format préféré de représentation de la date sans l'heure
%X - format préféré de représentation de l'heure sans la date
%y - l'année, numérique, sur deux chiffres (de 00 à 99)
%Y - l'année, numérique, sur quatre chiffres
%Z - fuseau horaire, ou nom ou abréviation
%% - un caractère `%' littéral
Il existe un autre format de date assez répandu, le timestamp UNIX. Un timestamp UNIX est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00h 00m 00s GMT. Par exemple, pour le 09/09/01 à 03:46:40, le timestamp correspondant est 1000000000.
L'utilisation de ~format_unixtimestamp() est exactement la même que ~format_timestamp()
~format_unixtimestamp('%d/%m/%y %H:%M:%S', 1282927629)
L'exemple précédent retournera "27/08/10 18:47:09".