Maison > Article > développement back-end > Pourquoi mon code PHP convertit-il les numéros de mois en décembre au lieu du mois correct ?
Conversion de nombres en noms de mois en PHP
Problème :
Lors de l'utilisation du code PHP pour convertissez une valeur de mois numérique (par exemple, 8 pour août) en son nom de mois correspondant, le code renvoie incorrectement "Décembre" au lieu de « août ».
Code :
<code class="php">$monthNum = sprintf("%02s", $result["month"]); $monthName = date("F", strtotime($monthNum)); echo $monthName;</code>
Cause fondamentale :
La fonction sprintf() est en ajoutant un zéro non significatif aux valeurs de mois inférieures à 10 (par exemple, 8 devient 08), ce qui amène alors date() à interpréter la valeur comme décembre (mois 12).
Solution recommandée (PHP >= 5.2) :
Utiliser les objets DateTime pour la manipulation de la date/heure :
<code class="php">$monthNum = 3; $dateObj = DateTime::createFromFormat('!m', $monthNum); $monthName = $dateObj->format('F'); // March</code>
Solution alternative (anciennes versions PHP) :
<code class="php">$monthNum = 3; $monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!