Frage

Ich versuche, 2010-02 in Februar 2010 umzuwandeln. Aber ich bekomme immer wieder Dezember 1969

Ich habe versucht, MKTime, Strtotime und eine Kombination aus beiden zu verwenden, aber es war immer noch nicht in der Lage, es zu tun ...

Das habe ich zuletzt versucht ...

$path_title = date('F, Y', mktime(0,0,0,2,0,2010));
War es hilfreich?

Lösung

Dies wäre ein Weg, es zu tun:

$dateString = '2010-02';
list($year, $month) = explode('-', $dateString);
$timeStamp = mktime(0, 0, 0, $month, 1, $year);
echo date('F, Y', $timestamp);

Ein anderer Weg wäre:

$dateString = '2010-02';
$timestamp = strtotime($dateString . '-01');
echo date('F, Y', $timestamp);

strtotime Ich kann nicht mehrdeutige Daten wie "2010-02" umgehen, aber wenn Sie es zu einem vollständigen Datum machen, sollte es funktionieren.

Andernfalls möchten Sie vielleicht so etwas wie etwas untersuchen DateTime::createFromFormat.

Andere Tipps

Versuche dies:

$str = '2010-02';
echo date('F, Y',mktime(0,0,0,substr($str,-2),1,substr($str,0,4)));

Sie müssen sicherstellen, dass Sie gültige Werte verwenden mktime(). In Ihrem Beispiel, das Sie in die Frage bearbeitet haben, haben Sie 0 als der Tag, der effektiv am ersten Tag minus eins ist, was Sie in den Vormonat einbringt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top