Dates Heures

      Un groupe date/heure est désigné par PHP au moyen d'un terme emprunté au vocabulaire UNIX : timestamp. Si cette forme, nous ne pouvons pas l'interpréter, mais PHP sait le reconnaître, le convertir sous diverses formes et le rendre ainsi aisément compréhensible.

      Un timestamp représente le nombre de secondes écoulées depuis le 1er janvier 1970 à 0h GMT, an zéro de l'ère UNIX.

Mise en forme d'une date

      La fonction date() convertit un timestamp selon les directives que vous lui communiquez. Sa forme générale est : $Date1 = date("format", $timestamp);       où forma est une chaîne de caractère spécifiant quelles sont les conversions à effectuer et $timestamp une date sous forme de timestamp. Si ce second argument est omis, c'est la date de l'instant où cette instruction est exécutée qui sera prise par défaut.

      Voici les principaux caractères de conversion qui peuvent intervenir dansle format.

SymboleSignification
aam ou pm
AAM ou PM
dJour du mois sur deux chiffres (01 à 31)
DJour de la semaine sur trois lettres
FMois en toutes lettres (nom)
gHeure au format 12 heures sans zéro en tête
GHeure au format 24 heures sans zéro en tête
hHeure au format 12 heures sans zéro en tête
HHeure au format 24 heures sans zéro en tête
iMinutes (00 à 59)
jJour du mois( 1 à 31 )
mNuméro du mois (01 à 12)
MNom du mois sur trois lettres
nNuméro du mois (1 à 12)
sSecondes (00 à 59)
yAnnée sur deux chiffres (70 à 99)
YAnnée sur quatre chiffres (1970 à 9999)


      Tous les autres caractères seront conservés tels quels, sans être interprétés. Pour que certains caractères du format spécifié ne soient pas interprétés comme un format de date, il suffit de les «échapper» avec un antislash, ce qui donnera quelque chose de cette forme : $aujourdhui = date("j m Y \e\\t \i\l \e\s\\t H \h i \m\\n."); Echo "Nous sommes le $aujourdhui<br>"; affichera Nous sommes le 7 04 2004 et il est 20 h 45 mn.

[ TOP ]

Rangement d'un timestamp dans une variable

      Vous avez le droit d'écrire : $aujourdhui = date();       Vous pouvez aussi ranger un groupe date/heure particulier sous forme de timestamp au moyen de la fonction mktime() : $bonnedate = mktime(h, m, s, M, J, A);       Si vous voulez savoir combien de seconde se sont écoulées depuis $bonnedate jusqu'à $aujourdhui, écrivez : $nb_secondes = $bonnedate - $aujourdhui;

[ TOP ]

Les Dates et MySQL

      Dans une base de données MySQL une date sera, par exemple, celle où un client aura passé une commande, MySQL, comme PHP, considères dates comme étant des entités particulières. Cependant, il les manipule différemment. Nous allons voir comment se manifestent ces différences.

  1. Date : l'ordre des éléments d'une date est le suivant : année, mois, jour. L'année peut être exprimée par aaaa ou aa, le mois par mm ou m et le jour par jj ou j. Chaque partie peut être séparée de la suivante par un tiret(-), un slash(/), un point(.), ou une espace.
  2. DATETIME : Les champs ainsi définis doivent contenir la date et l'heure. La date est formatée comme dans le paragraphe ci-dessus et suivie par l'heure sous la forme hh:mm:ss.
      Pour pouvoir être placés dans une base de données MySQL, ces éléments doivent avoir un format correct. Pour effectuer la transformation nécessaire, on peut faire usage des fonctions PHP date() et mktime(). $aujourdhui = date("Y-m-d"); La date est bien ici dans l'ordre année, mois, jour. Autre exemple $import = date("Y-m-d", mktime(0,0,0,1,15,2003)); A la suite de la date, on ajoute l'heure. Il ne reste plus qu'à ranger cette valeur dans la base de données au moyen d'une requête de ce genre : INSERT INTO Membre SET date="$aujourdhui"

[ TOP ]





Copyright © 2003-2008 Dave J.