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 ?

Pourquoi mon code PHP convertit-il les numéros de mois en décembre au lieu du mois correct ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-06 09:21:02764parcourir

Why Does My PHP Code Convert Month Numbers to December Instead of the Correct Month?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn