Merci à @iyepes, je résolus de contourner complètement la Locale si vous avez le site en plusieurs langues,% P ou% p sont à la fois sans valeur dans des endroits autres que ceux en anglais, je suppose, au moins c'est la cas pour l'espagnol
Séparez% P ou% p des paramètres régionaux, si vous disposez d'une boucle while, définissez la locale sur en_US, extrayez les heures dans en_US strftime, y compris% P, puis définissez les paramètres régionaux définis par l'utilisateur.
$day1 = strtotime($row["day1"]);
$day2 = strtotime($row["day2"]);
$day3 = strtotime($row["day3"]);
setlocale(LC_ALL, "en_US");
$time1 = strftime("%l:%M %P", $day1);
$time2 = strftime("%l:%M %P", $day2);
$time3 = strftime("%l:%M %P", $day3);
setlocale(LC_ALL, $defined_locale);
$day1 - strftime("%d de %B, %Y, " $day1).$time1;
$day2 - strftime("%d de %B, %Y, " $day2).$time2;
etc...
Êtes-vous en cours d'exécution sur php un Mac? – Paulpro
PHP sur GNU \ Linux. – Danny