Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt `date('F')` „Dezember“ zurück, wenn in PHP „08“ als Monatseingabe angegeben wird?

Warum gibt `date('F')` „Dezember“ zurück, wenn in PHP „08“ als Monatseingabe angegeben wird?

Barbara Streisand
Barbara StreisandOriginal
2024-11-05 09:34:02274Durchsuche

Why Does `date('F')` Return

Umwandeln einer Zahl in einen Monatsnamen in PHP

Beim Versuch, einen numerischen Monatswert mit PHP in den entsprechenden Namen umzuwandeln, der folgende Code wurde verwendet:

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

echo $monthName;</code>

Anstatt jedoch den erwarteten Monatsnamen (z. B. August) zurückzugeben, wurde fälschlicherweise „Dezember“ angezeigt. Weitere Untersuchungen ergaben, dass $result["month"] auf 8 gesetzt war und die Sprintf-Funktion eine führende Null hinzufügte, was den Wert „08“ ergab.

Empfohlene Lösung

Für moderne PHP-Versionen (>= 5.2) besteht die bevorzugte Methode darin, DateTime-Objekte für Datums-/Uhrzeitberechnungen zu verwenden. Hier ist eine erweiterte Lösung:

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

Das ! Das Formatierungszeichen setzt das Datum auf die Unix-Epoche zurück und das m-Formatzeichen stellt den numerischen Monatswert mit führenden Nullen dar.

Alternative Lösung

Für ältere PHP-Versionen ein Ein alternativer Ansatz besteht darin, mktime() zu verwenden, um einen Zeitstempel zu erstellen:

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

Denken Sie daran: Wenn Sie den abgekürzten Monatsnamen (z. B. März) bevorzugen, ersetzen Sie einfach „F“ durch „M“. Detaillierte Formatierungsoptionen finden Sie in der PHP-Handbuchdokumentation.

Das obige ist der detaillierte Inhalt vonWarum gibt `date('F')` „Dezember“ zurück, wenn in PHP „08“ als Monatseingabe angegeben wird?. 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