Date et heure
Le sommaire :
La fonction date,
par l’intermédiaire d’une variable, permet de récupérer l’heure et la date du
système.
La syntaxe :
$Nomvariable = date(«formatage»);
La
description :
$NomVariable est la
variable qui reçoit le résultat de la fonction date.
Formatage est le
paramètre de la fonction date. Il correspond à une suite de caractères qui
définit la nature et la forme des détails de l’information tel que nous la souhaitons.
Le formatage doit
être encadré par des guillemets.
Par exemple, si vous
souhaitez obtenir une date du genre « 28 12 1967 », eh bien
vous devrez mettre entre guillemets un « j » minuscule, ensuite un
séparateur, par exemple espace, puis « m » minuscule pour le mois, un
espace et un « Y » majuscule pour l’année. Tout ceci bien sûr encadré
par des guillemets, quant au séparateur entre le jour, le mois et l’année,
c’est à vous de réaliser votre choix, vous pouvez écrire un espace, une barre
oblique, ou encore, un tiret…
Voici la liste des
caractères utilisables :
((Attention, la
casse joue un rôle primordial !)
d
(minuscule) pour le jour du mois sur 2 chiffres.
D
(majuscule) pour le jour de la semaine en abrégé et en anglais.
j
(minuscule) pour le jour du mois sans le zéro non significatif.
l
(minuscule) pour le jour de la semaine en entier et en anglais.
m
(minuscule) pour les mois avec les zéro.
n
(minuscule) pour les mois sans les zéro.
M
(majuscule) pour les mois en abrégé.
F
(majuscule) pour les mois en entier.
Y
(majuscule) pour l'année sur 4 chiffres.
y
(minuscule) pour l'année sur 2 chiffres.
z
(minuscule) pour le numéro du jour de l'année encours.
t (minuscule)
pour le numéro du jour du mois en cours.
L (majuscule)
pour obtenir si l'année est bissextile, les valeurs retournées sont 1 pour vrai
et 0 pour faux.
h
(minuscule) pour l'heure au format anglais de 1 à 12.
H
(majuscule) pour l'heure sur 24 heures.
i
(minuscule) pour les minutes de 0 à 59.
s
(minuscule) pour les secondes de 0 à 59.
Voici un
exemple qui affiche la date du jour :
<html>
<head>
<title> bonjour </title>
</head>
<body>
<h1>Affichage
de la date du jour</h1>
<?php
//
Affectation de la date du jour dans la variable $DateDuJour
$DateDuJour
= date("j m Y");
echo "Aujourd'hui nous sommes le $DateDuJour »;
?>
</body>
</html>
Voici maintenant un
exemple pour afficher l’heure courante :
<html>
<head>
<title> bonjour </title>
</head>
<body>
<h1>Affichage
de l'heure</h1>
<?php
// Affectation de
l'heure courante dans la variable $HeureCourante
$HeureCourante =
date("H:i");
echo
"Savez-vous quelle heure il est ? <br>";
echo "Il est très exactement $HeureCourante »; ?>
</body>
</html>
Cette fonction
permet de vérifier la validité d’une date passée en paramètre.
La
syntaxe :checkdate(mois,jour,année) ;
La
description :
La fonction
checkdate retourne vraie ou faux selon si les 3 variables passées en paramètres
sont correctes ou non.
Dans les paramètres
de check date, vous devez y saisir le mois, puis le jour et enfin l’année et
chacun d’entre eux séparés par une virgule.
Voici un
exemple :
Le fichier index.php
invite l’utilisateur à saisir le jour en chiffre, le mois et l’année dans 3
zones d’éditions distinctes. Ensuite, après avoir validé le bouton qui permet
de tester la validité de la date saisie, le fichier suite.php est exécuté, il
teste la validité de la date et affiche le résultat.
Voici le code du
fichier index.php :
<html>
<head>
<title> bonjour </title>
</head>
<body>
<h1>Veuillez
saisir une date à partir des 3 champs</h1>
<p>Ensuite,
validez le bouton :</à>
<p>Tester la
validité de la date</p>
<form action="suite.php"
method="post">
Le jour sur deux
chiffres : <input type="test" name="jour"
size="12">
Le mois sur deux
chiffres : <input type="test" name="mois"
size="12">
L'année sur quatre
chiffres : <input type="test" name="annee"
size="12">
<input
type="submit" value="Tester la validité de la date">
</form>
</body>
</html>
Voici le code du
fichier suite.php :
<html>
<head>
<title> Résultat</title>
</head>
<body>
<h1>Résultat
de la validité de la date saisie</h1>
<?php
extract($_POST,EXTR_OVERWRITE);
if (checkdate($mois,$jour,$annee))
{ echo "Bravo,
la date saisie est correcte.";
echo "vous avez saisie la date suivante :
$jour $mois $annee »; }
else
{ echo "Echec,
la date saisie au clavier est incorrect."; } ?>
</body>
</html>
Ces deux fonctions
retournent le nombre de secondes écoulées entre la date passée en paramètre et
une date de départ.
La
fonction mktime renvoie le nombre de seconde écoulé depuis le premier janvier
1970 pour la date passée en paramètre :
La fonction
gregoriantojd retourne le nombre de jours écoulé depuis le premier janvier 4714avant
Jésus CHRIST.
Les
syntaxes :
$NombreDeSecondes
= mktime(heure,minutes,secondes,mois,jour,année);
$NombreDeSecondes
= gregoriantojd(mois,jour,année);
Remarque :
La
fonction mktime accepte le passage en paramètres non seulement d’une date, mais
de l’heure, des minutes et des secondes.
Attention,
si vous souhaitez calculer le nombre de jours qui s’est écoulé entre deux
dates, vous devrez convertir le résultat en jours, puisque ces deux fonctions
retournent un résultat exprimé en secondes.
Attention,
si vous désirez traiter une date antérieure au premier janvier 1970, date de la
création du PHP, vous devrez utiliser la fonction gregoriantojd.
Je vous
propose maintenant un exemple qui affiche le nombre de jours écoulés depuis le
25 décembre 1985.
<html>
<head>
<title> bonjour </title>
</head>
<body>
<h1>Calcul
de jours écoulés entre deux dates</h1>
<p>Le
nombre de jours écoulés depuis le 25 décembre 1985 est de :<p>
<?php
//
création et initialisation de la date du jour
$JCourant
= date("j");
$MCourant
= date("m");
$ACourante
= date("Y");
//
création et initialisation de l'ancienne date
$JAncien = 25;
$MAncien = 12;
$AAncienne = 1985;
// calcul
du nombre de secondes écoulées entre les deux dates
$NombreJours=mktime(0,0,0,$MCourant,$JCourant,$ACourante)-mktime(0,0,0,$MAncien,$JAncien,$AAn
cienne);
//
conversion du résultat en nombre de jours
$NombreJours=$NombreJours/60/60/24;
//
affichage du résultat
echo $NombreJours." jours très exactement !"; ?>
</body>
</html>
Philippe
BOULANGER