Heim > Artikel > Backend-Entwicklung > Warum gibt mein PHP-Code „Dezember“ statt „August“ zurück, wenn ich eine Monatszahl in ihren Namen umwandele?
Zahl in PHP in Monatsnamen umwandeln
Ihr PHP-Code versucht, eine Monatszahl (8) in den entsprechenden Monatsnamen umzuwandeln ( „August“) mit der Funktion date(). Leider gibt der Code „Dezember“ statt „August“ zurück. Dies liegt daran, dass $monthNum mit einer führenden Null („08“) aufgefüllt wurde, bevor es an die Funktion strtotime() übergeben wird.
Empfohlene Lösung mit DateTime-Objekten
Für eine genaue und aktuelle Datums-/Uhrzeitmanipulation wird dringend empfohlen, DateTime-Objekte zu verwenden. Hier ist eine verbesserte Version Ihres Codes mit der DateTime-Klasse:
<code class="php">$monthNum = 8; $dateObj = DateTime::createFromFormat('!m', $monthNum); $monthName = $dateObj->format('F'); // August</code>
Alternative Lösung für ältere PHP-Versionen
Wenn Sie keine DateTime-Objekte verwenden können, können Sie eine erstellen Erstellen Sie einen Zeitstempel mit der Funktion mktime() und übergeben Sie ihn an die Funktion date():
<code class="php">$monthNum = 8; $monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // August</code>
Hier erstellt mktime(0, 0, 0, $monthNum, 10) einen Zeitstempel, der den 10. Tag des darstellt angegebenen Monat. Der Formatbezeichner „F“ für date() gibt den vollständigen Monatsnamen zurück.
Das obige ist der detaillierte Inhalt vonWarum gibt mein PHP-Code „Dezember“ statt „August“ zurück, wenn ich eine Monatszahl in ihren Namen umwandele?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!