Heim > Artikel > Backend-Entwicklung > Warum konvertiert mein PHP-Code Monatszahlen in Dezember statt in den richtigen Monat?
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!