Maison > développement back-end > tutoriel php > Pourquoi mon code PHP renvoie-t-il « décembre » au lieu de « août » lors de la conversion du mois numéro 8 en nom de mois ?

Pourquoi mon code PHP renvoie-t-il « décembre » au lieu de « août » lors de la conversion du mois numéro 8 en nom de mois ?

Barbara Streisand
Libérer: 2024-11-05 10:51:02
original
902 Les gens l'ont consulté

Why is my PHP code returning

Convertir le numéro en nom de mois en PHP

Problème :

Vous avez implémenté un code pour convertir un numéro de mois en un nom du mois en PHP, mais il renvoie un résultat incorrect. Plus précisément, le code renvoie "Décembre" au lieu de "Août" lorsque le numéro du mois est 8.

Analyse :

Le problème vient du fait que le sprintf La fonction ajoute un zéro non significatif au numéro du mois, ce qui donne "08" au lieu de "8". Cela amène la fonction de date à interpréter l'entrée comme la représentation numérique d'un mois avec un zéro non significatif, qui correspond à décembre au lieu d'août.

Solution recommandée :

Pour résoudre ce problème, il est recommandé d'utiliser des objets DateTime pour toute tâche de manipulation de date/heure. Pour les versions PHP >= 5.2, vous pouvez utiliser le code suivant :

<code class="php">$monthNum  = 3;
$dateObj   = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March</code>
Copier après la connexion

Le ! Le caractère de formatage réinitialise tout à l'époque Unix, et le caractère de format m représente la représentation numérique d'un mois avec des zéros non significatifs.

Solution alternative (pour les versions PHP < 5.2) :

Alternativement, si vous ne pouvez pas passer à une version plus récente de PHP, vous pouvez utiliser le code suivant :

<code class="php">$monthNum  = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March</code>
Copier après la connexion

Ici, le deuxième paramètre de la fonction date accepte un horodatage. La fonction mktime est utilisée pour créer un horodatage représentant le numéro du mois et le jour spécifiés (dans ce cas, le 10ème jour du mois). Pour obtenir le nom du mois à 3 lettres (par exemple, Mar), remplacez le caractère au format F par M.

Informations supplémentaires :

Le manuel PHP fournit une liste complète de toutes les options de formatage disponibles pour la fonction date.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal