web-dev-qa-db-ger.com

Wie konvertiert man ISO8601 in das Datumsformat in PHP

Konvertierung ( im ISO8601-Format ): 2014-03-13T09: 05: 50.240Z

Zu diesem ( im MySQL DATE-Format ): 2014-03-13

in PHP?

14
Neel

versuche dies

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime($date));

Die vollständige Dokumentation zur Datumsfunktion finden Sie hier: http://php.net/manual/en/function.date.php

Die PHP -Funktion "strtotime" wandelt nichts anderes als Ihren Zeitstempel in einen Unix-Zeitstempel um.

Hoffe ich konnte helfen :)

PS: Nur für den Fall, dass strtotime 0 zurückgibt, versuchen Sie Folgendes:

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime(substr($date,0,10)));
21
ThatMSG

Seit PHP 5.2.0 können Sie dies auch mitOOPund DateTime() tun (natürlich, wenn Sie OOP bevorzugen):

$now = new DateTime("2014-03-13T09:05:50.240Z");
echo $now->format('Y-m-d');    // MySQL datetime format
6
Faisal

Konvertieren Sie einfach die Datums-/Uhrzeitbeschreibung in einen Unix-Zeitstempel mit strtotime und anschließend das Format fünf mit Date Formats .

Versuchen Sie es wird sicherlich für Sie arbeiten.

$date = '2014-03-13T09:05:50.240Z';

$fixed = date('Y-m-d', strtotime($date));
1
Mitul Shah

Es gibt keinen Grund, die ineffizienten Zeitfunktionen zu verwenden. Am effizientesten ist es, einfach die ersten 10 Zeichen zu extrahieren:

substr($date,0,10)
1
Wiimm