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

Patricia Arquette
Libérer: 2024-11-07 02:27:03
original
156 Les gens l'ont consulté

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

Convertir un numéro en nom de mois en PHP

Lors de la tentative de conversion d'une valeur numérique de mois en son nom correspondant à l'aide d'une combinaison de sprintf et de date fonctions, vous pouvez rencontrer un problème inattendu où la sortie affiche décembre au lieu du mois prévu.

Problème :

Le code fourni, $monthNum = sprintf(" s", $result["mois"]); $monthName = date("F", strtotime($monthNum));, ajoute par erreur un zéro non significatif à la valeur numérique du mois. Cela amène la fonction de date à interpréter la valeur résultante comme décembre au lieu du mois souhaité.

Solutions :

Approche recommandée :

La solution recommandée consiste à utiliser des objets DateTime pour les calculs de date et d'heure. Pour les versions PHP 5.2 et supérieures, 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 toutes les valeurs à l'époque Unix et le format m représente la représentation numérique du mois avec des zéros non significatifs.

Solution alternative (pour les anciennes versions de PHP) :

Pour les versions PHP inférieures à 5.2, vous pouvez utiliser la fonction mktime pour créer un horodatage puis le passer comme deuxième paramètre à la fonction date :

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

Ici, mktime crée un horodatage pour le premier jour du mois spécifié. Ajustez le 10 dans la fonction au jour souhaité dans le mois.

En utilisant ces solutions, vous pouvez convertir correctement les valeurs numériques du mois en leurs noms correspondants en PHP.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!