Heim  >  Artikel  >  Backend-Entwicklung  >  Warum konvertiert mein PHP-Code Monatszahlen in Dezember statt in den richtigen Monat?

Warum konvertiert mein PHP-Code Monatszahlen in Dezember statt in den richtigen Monat?

Linda Hamilton
Linda HamiltonOriginal
2024-11-06 09:21:02678Durchsuche

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

Zahlen in Monatsnamen in PHP umwandeln

Problem:

Bei Verwendung von PHP-Code Wenn Sie einen numerischen Monatswert (z. B. 8 für August) in den entsprechenden Monatsnamen umwandeln, gibt der Code fälschlicherweise „Dezember“ anstelle von „August“ zurück.

Code:

<code class="php">$monthNum = sprintf("%02s", $result["month"]);
$monthName = date("F", strtotime($monthNum));

echo $monthName;</code>

Ursache:

Die Funktion sprintf() fügt eine führende Null zu Monatswerten unter 10 hinzu (z. B. 8 wird zu 08), was dann dazu führt, dass date( ), um den Wert als Dezember (Monat 12) zu interpretieren.

Empfohlene Lösung (PHP >= 5.2):

Verwenden Sie DateTime-Objekte zur Datums-/Uhrzeitmanipulation:

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

Alternative Lösung (ältere PHP-Versionen):

<code class="php">$monthNum  = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March</code>

Das obige ist der detaillierte Inhalt vonWarum konvertiert mein PHP-Code Monatszahlen in Dezember statt in den richtigen Monat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn