Médiaforma

All posts tagged strftime

Utilisez les fonctions setlocale(), strftime() et strtotime() pour afficher le nom du jour qui correspond à une date quelconque. Par exemple, si la date passée est 10/01/2013, affichez quelque chose comme ceci :

Solution

Faites une pause dans la vidéo et rédigez le code de l’exercice. Vous pourrez poursuivre pour comparer votre code et celui de la solution.

La première instruction récupère la locale correspondant à la France.

La deuxième instruction modifie (si cela est nécessaire) les informations de localisation pour qu’elles correspondent à la France.

Enfin, la troisième instruction utilise la fonction strftime pour afficher les données mises en forme concernant la date fournie en deuxième argument. Ce deuxième argument doit être un timestamp UNIX. Pour obtenir ce type d’encodage, on utilise la fonction strtotime et on lui fournit la date au format chaine.

<?php
  $sl = setlocale(LC_TIME, "FRA");
  setlocale(LC_TIME,$sl);
  echo strftime("Le %#d %B %Y est un %A", strtotime("10/01/2013"));
?>

Exécutez ce code dans WAMP Server. Comme vous le voyez, la date du 1er Octobre 2013 est bien prise en compte dans l’affichage du strftime.


Bien entendu, il est possible de travailler avec une date différente de la date du jour. Pour cela, vous devez passer un deuxième paramètre à la fonction strftime() :

$dateEtHeure = strftime(ch, d);

Où ch est une chaîne de formatage et d est la date (timestamp UNIX) à formater.

Remarque

Vous pouvez utiliser la fonction strtotime() pour convertir une chaîne contenant une date au format MM/JJ/AAAA en un timestamp UNIX.