Dates PHP
Manipuler les dates en PHP
Afficher la date
Syntaxe : date(format). Permet d'obtenir la date et l'heure locale du serveurExemple de manipulation de date
<?php
$aujourdhui = date("l d F Y");
?>
<html><body>
<?php echo "Nous sommes le ".$aujourdhui;?>
</body></html>
On utilise ici les options
- "l" (L minuscule) le jour de la semaine en texte anglais version longue,/li>
- "d" le jour du mois, sur deux chiffres,/li>
- "F" le mois en texte anglais version longue/li>
- "Y" l'année sur 4 chiffres.
Afficher l'heure
<?php
date_default_timezone_set('Europe/Paris');
$heure = date("H\hi");
?>
<html><body>
<?php echo "Il est ".$heure; ?>
</body></html>
Pour l'heure on utilise les options
- H qui retourne l'heure au format 24h
- i qui retourne les minutes
Le \h permet de saisir du texte (ici un h) sans qu'il ne soit pris en compte.
Afficher la date en français
Pour formater des dates en français, on utilise les fonctions setlocale(), qui modifie les informations de localisation et strftime(), qui formate une date/heure locale avec la configuration locale.Exemple avec setlocale() et strftime()
<?php
setlocale(LC_TIME, 'french');
$date_fr = strftime("%A %d %B %Y");
?>
<html><body>
<?php echo "Nous sommes le ".$date_fr; ?>
</body></html>
LC_TIME est utilisé pour le format de date et d'heure avec la fonction strftime().
Options de la fonction strftime() :- %A qui retourne le nom du jour de la semaine,
- %d qui retourne le jour du mois en numérique (01 à 31),
- %B pour le nom du mois et %Y pour l'année sur quatre chiffres.
Transformation de date
Exemple de transformation de date en format us vers le format fr
<?php
$ladate='2020-10-19';
function datefr($var) {
list($year, $month, $day) = explode("-", $var);
$date = $day.'-'.$month.'-'.$year;
return $date;
}
$ladate = datefr($ladate);
echo $ladate;
Autre exemple - plus rapide - de transformation de date en format us vers le format fr
<?php
// la date de départ est au format aaaa-mm-jj
$ladate = implode('/',array_reverse(explode('-',$ladate)));
Fonctions utiles
- checkdate() : Vérifie la validité d'une date (sur chacun des 3 chiffres). Exemple:
<?php
if (checkdate(01, 32, 2000)) {
echo "Bon";}
else { echo "Pas bon";}
?> - getlastmod() : Retourne la date de dernière modification de la page. Exemple:
<?php
echo "Dernière modification : " . date( "d/m/Y", getlastmod());
?> - time() : donne le timestamp Unix actuel (nombre de seconde écoulées depuis le 1/01/1970). Exemple :
<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
echo "Aujourd\'hui : ". date('d/m/Y');
echo "Semaine prochaine : ". date('d/m/Y', $nextWeek);
?> - strtotime() : lie une date au format anglophone (YYYY-DD-MM hh:mm:ss) et la transforme en timestamp Unix. Idéale pour récupérer en PHP une date qui provient d'une base de donnée MySQL. Exemple :
<?php
$resultat = mysql_query("SELECT * FROM matable");
$ligne = mysql_fetch_array($resultat);
$dateMySQL = $ligne['mon_champ_date'];
$mon_nouveau_champ_date = date("d/m/Y", strtotime($dateMySQL));
echo $mon_nouveau_champ_date;
?>
SELECT *, DATE_FORMAT(mon_champ_date, '%d/%m/%Y') FROM ma_table;