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

Patricia Arquette
Freigeben: 2024-11-07 02:27:03
Original
156 Leute haben es durchsucht

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

Zahl in Monatsnamen in PHP konvertieren

Beim Versuch, einen numerischen Monatswert mithilfe einer Kombination aus Sprintf und Datum in den entsprechenden Namen umzuwandeln Funktionen kann es zu einem unerwarteten Problem kommen, bei dem in der Ausgabe Dezember statt des vorgesehenen Monats angezeigt wird.

Problem:

Der bereitgestellte Code $monthNum = sprintf(" s", $result["month"]); $monthName = date("F", strtotime($monthNum)); fügt dem numerischen Monatswert fälschlicherweise eine führende Null hinzu. Dies führt dazu, dass die Datumsfunktion den resultierenden Wert als Dezember statt als gewünschten Monat interpretiert.

Lösungen:

Empfohlener Ansatz:

Die empfohlene Lösung besteht darin, DateTime-Objekte für Datums- und Uhrzeitberechnungen zu verwenden. Für PHP-Versionen 5.2 und höher können Sie den folgenden Code verwenden:

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

Das ! Das Formatierungszeichen setzt alle Werte auf die Unix-Epoche zurück und das m-Format stellt die numerische Darstellung des Monats mit führenden Nullen dar.

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

Für PHP-Versionen unter 5.2 können Sie mit der mktime-Funktion einen Zeitstempel erstellen und diesen dann als zweiten Parameter an die Datumsfunktion übergeben:

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

Hier erstellt mktime einen Zeitstempel für den ersten Tag des angegebenen Monats. Passen Sie die 10 in der Funktion an den gewünschten Tag innerhalb des Monats an.

Mithilfe dieser Lösungen können Sie numerische Monatswerte in PHP korrekt in die entsprechenden Namen umwandeln.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!