Wie man ein Datum als iso 8601 Format mit PHP anzeigt
Ich versuche die Anzeige eines datetime-aus meiner MySQL Datenbank als iso-8601 formatierte string mit PHP, aber es kommt falsch.
17 Okt 2008 coming-out: 1969-12-31T18:33:28-06:00 und das ist eindeutig nicht korrekt (das Jahr sollte 2008 nicht 1969)
Dies ist der code den ich verwende:
<?= date("c", $post[3]) ?>
$post[3] is the datetime (CURRENT_TIMESTAMP)
aus meiner MySQL-Datenbank.
Irgendwelche Ideen, was falsch läuft?
InformationsquelleAutor der Frage Matthew James Taylor | 2009-05-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das zweite argument von
date
ist ein UNIX-timestamp, keine Datenbank timestamp-string.Müssen Sie konvertieren Sie Ihre Datenbank timestamp mit strtotime.
InformationsquelleAutor der Antwort Paolo Bergantino
Mithilfe der DateTime-Klasse PHP-version 5.2 wird wie folgt vorgenommen:
Sehen Sie es in Aktion
PHP 5.4 dies können Sie als one-liner:
InformationsquelleAutor der Antwort John Conde
Prozeduraler Stil :
Objektorientierten Stil aus :
Hybrid 1 :
Hybrid-2 :
Hinweise :
1) Sie können auch
'Y-m-d\TH:i:sP'
als alternative zu'c'
für das format.2) Die Standard-Zeitzone für Ihre Eingabe, ist die Zeitzone des Servers. Wenn Sie möchten, dass der input für eine andere Zeitzone, die Sie benötigen, um Ihr Zeit-zone ausdrücklich. Dies wird auch Auswirkungen auf die Ausgabe, jedoch :
3) Wenn Sie möchten, dass der Ausgang für eine Zeit-zone, verschiedene aus, die Ihrer Eingabe, können Sie Ihre Zeitzone explizit :
InformationsquelleAutor der Antwort John Slegers
Pre PHP 5:
InformationsquelleAutor der Antwort Newmania
Hier ist die gute Funktion für die PHP 5:
Ich fügte hinzu, GMT-Unterschied am Ende, es ist nicht hardcoded.
InformationsquelleAutor der Antwort Guillaume