Si il y'a encore parmi vous des gens qui ont les yeux ouverts et les neurones fonctionnels, je vous soumet une petite énigme issue de mon exercice de codage de ce soir. Le premier qui trouve aura droit à ma reconnaissance . Mais ne vous prenez pas trop la tête non plus, ça n'a rien de vital pour moi que cette enigme soit résolue (simplement ça me turlupine et ça m'énerve !)
situation de départ :
je veux que ma page accueil m'affiche la date et l'heure au moment ou je charge la page (dans mon exemple, il était 23h23 le 27/08/2012
j'ai donc écrit ce code :
<?php // affichage de la date et de l'heure (h:mn) du dernier chargement de la page si le visiteur est en france. //
date_default_timezone_set('Europe/Paris');
// pour nous c'est date_default_timezone_set('Europe/Paris');
$datetime = new DateTime('');
$date = date("d-m-Y");
$heure = date("H:i");
Print("Nous sommes le $date et il est $heure. <br />");
?>
qui marche très bien et qui logiquement m'affiche : Nous sommes le 27-08-2012 et il est 23:23. Bien ! maintenant, comme je suis, d'après mon ado de fils, une "vieille" qui aime bien les mots plutot que les chiffres, j'aurais aimé que mon navigateur m'affiche
Nous sommes le 27 aout 2012 et il est 23:23. à la place de Nous sommes le 27-08-2012 et il est 23:23.
j'ai donc eu l'idée de modifier mon code d'origine et d'écrire ceci :
<?php // autre affichage de la date / heure courante
$date_d = date("d"); // creation de $date_d
$date_m = date("m");
$date_Y = date("Y"); // creation de $date_Y
$heure = date("H:i");
if ('$date_m' ==01) $date_m2 = 'janvier';
if ('$date_m' ==02) $date_m2 = 'février';
if ('$date_m' ==03) $date_m2 = 'mars';
if ('$date_m' ==04) $date_m2 = 'avril';
if ('$date_m' ==05) $date_m2 = 'mai';
if ('$date_m' ==06) $date_m2 = 'juin';
if ('$date_m' ==07) $date_m2 = 'juillet';
if ('$date_m' ==08) $date_m2 = 'aout';
if ('$date_m' ==09) $date_m2 = 'septembre';
if ('$date_m' ==10) $date_m2 = 'octobre';
if ('$date_m' ==11) $date_m2 = 'novembre';
if ('$date_m' ==12) $date_m2 = 'decembre';
Print("Nous sommes le $date_d $date_m2 $date_Y et il est $heure");
?>
J'ai placé mon second code à la suite du premier pour que les 2 affichages soient l'un au dessus de l'autre pour les comparer + facilement.Je m'attendait à avoir :
Nous sommes le 27-08-2012 et il est 23:23.
Nous sommes le 27 aout 2012 et il est 23:23.
Or j'ai eu (et l'énigme est là !)
Nous sommes le 27-08-2012 et il est 23:23.
Nous sommes le 27 septembre 2012 et il est 23:23
Pourquoi est ce que mon couillon de navigateur traduit 08 par septembre ?
Je me suis même amusé à changer le mot 'septembre' dans la seconde partie du code par le mot 'tomate'
et j'ai eu :
Nous sommes le 27 tomate 2012 et il est 23:23.