Bonjour,

J'ai un petit problème avec ce code php j'ai bien la date qui s'affiche mais le probleme c'est que c'est en anglais et non en français ?

$date = new DateTime("2018-03-22 00:00:00", new DateTimeZone("Europe/Paris"));

echo $date->format('d M'); // 22 Mars

1 réponse


Huggy
Réponse acceptée

La méthode format ne tient pas compte de la "locale"
seule la fonction strftime en tient compte

<!DOCTYPE html>
<html>
<head> 
<meta charset='UTF-8'>
</head>
<body>
<?php

$date = new DateTime("2018-02-22 00:00:00", new DateTimeZone("Europe/Paris"));
setlocale(LC_TIME, 'french');  // sous Windows
//echo $date->format('d M'); // 22 Mars
echo utf8_encode(strftime("%e %b", $date->getTimestamp()));
//echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

?>
</body>
</html>

le mois de février pose problème à cause de son accent aigu qu'il faut convertir en UTF-8
d'où la partie html pour forcer le charset.
sinon le setlocale dépend fortement du système utilisé
on ne sais jamais trop quoi mettre "fr-FR" , "baguette-camembert" ça marche pas trop