Easy-Micro

LANGAGE Langage PHP
Dates PHP

Manipuler les dates en PHP

Formation PHP par Easy-Micro Afficher la date

Syntaxe : date(format). Permet d'obtenir la date et l'heure locale du serveur

Exemple de manipulation de date
<?php
$aujourdhui = date("l d F Y");
?>
<html><body>
<?php echo "Nous sommes le ".$aujourdhui;?>
</body></html>
Résultat : Nous sommes le tuesday 12 december 2012

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.

Formation PHP par Easy-Micro Afficher l'heure

<?php
date_default_timezone_set('Europe/Paris');
$heure = date("H\hi");
?>
<html><body>
<?php echo "Il est ".$heure; ?>
</body></html>
Résultat : Il est 12h12

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.

Formation PHP par Easy-Micro 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>
Résultat : Nous sommes le mardi 12 décembre 2012

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.

Formation PHP par Easy-Micro 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)));

Formation PHP par Easy-Micro 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;
    ?>
On peut aussi transformer une date directement lors d'une requête SQL :
SELECT *, DATE_FORMAT(mon_champ_date, '%d/%m/%Y') FROM ma_table;

< Page précédente LANGAGE PHP Page suivante >