|
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.
| Symbole | Signification |
| a | am ou pm |
| A | AM ou PM |
| d | Jour du mois sur deux chiffres (01 à 31) |
| D | Jour de la semaine sur trois lettres |
| F | Mois en toutes lettres (nom) |
| g | Heure au format 12 heures sans zéro en tête |
| G | Heure au format 24 heures sans zéro en tête |
| h | Heure au format 12 heures sans zéro en tête |
| H | Heure au format 24 heures sans zéro en tête |
| i | Minutes (00 à 59) |
| j | Jour du mois( 1 à 31 ) |
| m | Numéro du mois (01 à 12) |
| M | Nom du mois sur trois lettres |
| n | Numéro du mois (1 à 12) |
| s | Secondes (00 à 59) |
| y | Année sur deux chiffres (70 à 99) |
| Y | Anné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 ";
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.
- 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.
- 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 ]
|