Konvertieren Sie mit PHP von MySQL Datetime in ein anderes Format

Lesezeit: 6 Minuten

Konvertieren Sie mit PHP von MySQL Datetime in ein anderes
Tim Boland

Ich habe ein datetime Spalte in MySQL.

Wie kann ich es auf die Anzeige als umwandeln mm/tt/jj H:M (AM/PM) mit PHP?

  • Was wir wissen müssen, ist, wie das Datum in SQL gespeichert wird. Ist es Timestamp oder Datetime oder Unixtime?

    – Ólafur Waage

    25. September 2008 um 23:15 Uhr

  • Sie werden nicht in Unix-Zeit gespeichert, genau wie ein normales Datum, PHP ist derjenige, der damit als Sekunden und so umgeht. Ich würde Ihnen empfehlen, PHP zu verwenden OOP datetime-Funktionen, sie sind sehr einfach zu bedienen.

    – Gucho Ca

    15. Januar 2014 um 11:25 Uhr


  • Kann ich eine Alternative zu Ihrem Datumsformat empfehlen? mm/dd/yy ist sehr amerikanisch, und diejenigen von uns, die in anderen Teilen der Welt leben, werden mehr als ein bisschen irritiert, wenn sie versuchen, zu hinterfragen, was damit gemeint ist 11-12-13. Der universellere Standard ist yyyy-mm-dd, und ist Teil des ISO 8601-Standards. Andernfalls sollten Sie den Monat verwenden Namenicht die Nummer.

    – Manngo

    23. April 2017 um 5:15 Uhr

Konvertieren Sie mit PHP von MySQL Datetime in ein anderes
kta

Wenn Sie nach einer Möglichkeit suchen, ein Datum in das MySQL-Format zu normalisieren, verwenden Sie Folgendes

$phpdate = strtotime( $mysqldate );
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );

Die Linie $phpdate = strtotime( $mysqldate ) akzeptiert eine Zeichenfolge und führt eine Reihe von Heuristiken durch, um diese Zeichenfolge in einen Unix-Zeitstempel umzuwandeln.

Die Linie $mysqldate = date( 'Y-m-d H:i:s', $phpdate ) verwendet diesen Zeitstempel und PHPs date Funktion, um diesen Zeitstempel wieder in das Standard-Datumsformat von MySQL umzuwandeln.

(Anmerkung des Herausgebers: Diese Antwort ist hier wegen einer ursprünglichen Frage mit verwirrender Formulierung und der allgemeinen Google-Nützlichkeit dieser Antwort, auch wenn sie die jetzt bestehende Frage nicht direkt beantwortet hat)

  • Diese Antwort verwirrt das Thema

    – Alex K

    6. Juni 2013 um 9:07 Uhr

  • @0xBAADF00D: Bitte lesen Sie die Frage noch einmal … niemand hat nach dem MySQL-Standardformat gefragt.

    – Benutzer7116

    22. August 2013 um 15:11 Uhr

  • natürlich, aber wenn Standards vorhanden sind, könnte es schön sein, dem Standard zu folgen (es vermeidet später Kopfschmerzen, wenn ein anderer Entwickler an Ihrem Code arbeitet) xD

    – 0xBAADF00D

    22. August 2013 um 17:27 Uhr

  • Die Frage fordert die Ausgabe im Format mm/dd/yy H:M (AM/PM), nicht “Ymd H:i:s”.

    – Riki

    10. Januar 2014 um 17:01 Uhr

  • does not work für wen? Die akzeptierte Antwort funktioniert, wenn Sie konvertieren möchten von MySQL hinein mm/tt/jj H:M (AM/PM) wie OP verlangt. Nur weil Sie das Gegenteil tun wollen, ist die akzeptierte Antwort nicht falsch.

    – Toxalot

    13. März 2014 um 2:22 Uhr


Konvertieren Sie mit PHP von MySQL Datetime in ein anderes
Tim Boland

So konvertieren Sie ein von MySQL abgerufenes Datum in das angeforderte Format (mm/dd/yy H:M (AM/PM)):

// $datetime is something like: 2014-01-31 13:05:59
$time = strtotime($datetimeFromMysql);
$myFormatForView = date("m/d/y g:i A", $time);
// $myFormatForView is something like: 01/31/14 1:05 PM

Beziehen Sie sich auf die PHP-Datumsformatierungsoptionen um das Format anzupassen.

  • Wo ist das $row Objekt soll von sein?

    – Mike

    1. März 2013 um 21:02 Uhr

  • Ich könnte mich irren, aber ich denke, einige von Ihnen verfehlen den Punkt. Er möchte, dass die Ausgabe im Format „m/d/yg:i A“ erfolgt und das Originaldatum aus einem DATETIME-Feld zieht. Sein Code funktioniert also. @Mike $row->createdate ist nur Tims datetime-Spalte.

    – Bloße Entwicklung

    13. März 2013 um 14:48 Uhr

  • Die Antwort von @AsTeR ist nur verwirrend, wenn Sie die Frage falsch gelesen haben. OP hat die eigene Frage beantwortet und möchte ein Date vereinbaren von MySQL und Ausgabe im angeforderten Format: mm/tt/jj H:M (AM/PM).

    – Toxalot

    13. März 2014 um 1:45 Uhr

  • @TimBoland Ich denke, die Antwort könnte verbessert werden, wenn von wurde ebenso hervorgehoben wie das gewünschte Format mm/tt/jj H:M (AM/PM). Und es könnte von einer Verknüpfung mit der Datumsfunktion profitieren. Ich habe versucht, eine Änderung vorzuschlagen, aber sie wurde abgelehnt.

    – Toxalot

    13. März 2014 um 1:49 Uhr

  • Fun Fact: Diese Antwort entspricht in etwa der direkt darunter (die praktisch keine Downvotes hat), aber sie hat> 40 Downvotes erhalten, weil sie die Frage des OP beantwortet, die sich von der unterscheidet, die Leute, die auf diese Seite kommen, tatsächlich haben.

    – Clemens

    29. April 2014 um 22:53 Uhr

1646978649 991 Konvertieren Sie mit PHP von MySQL Datetime in ein anderes
enobrev

Wenn Sie PHP 5 verwenden, können Sie es auch versuchen

$oDate = new DateTime($row->createdate);
$sDate = $oDate->format("Y-m-d H:i:s");

  • Wie oben in den Kommentaren erwähnt, ist das Standardformat ("Y-m-d H:i:s")

    – Yannickv

    13. November 2014 um 10:31 Uhr


1646978650 1 Konvertieren Sie mit PHP von MySQL Datetime in ein anderes
Tony Stark

$valid_date = date( 'm/d/y g:i A', strtotime($date));

Referenz: http://php.net/manual/en/function.date.php

1646978650 331 Konvertieren Sie mit PHP von MySQL Datetime in ein anderes
Hasenpriester

Endlich die richtige Lösung für PHP 5.3 und höher:
(optionale Zeitzone zum Beispiel hinzugefügt, wie in den Kommentaren erwähnt)

ohne Zeitzone:

$date = \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date);
echo $date->format('m/d/y h:i a');

mit Zeitzone:

$date = \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date, new \DateTimeZone('UTC'));
$date->setTimezone(new \DateTimeZone('Europe/Berlin'));
echo $date->format('m/d/y h:i a');

  • sein Fehler.. Klasse ‘App\Controller\DateTime’ nicht gefunden ..unter Verwendung von PHP 6.4

    – aswzen

    26. November 2017 um 11:49 Uhr


  • Wenn Sie in einem anderen Namensraum arbeiten, müssen Sie diesen mit einem vorangestellten Backslash aufrufen: \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date);

    – Hasenpriester

    4. Dezember 2017 um 22:30 Uhr

  • Vergessen Sie nicht, die Zeitzone anzugeben, wenn Sie Ihr Datumsobjekt erstellen! Andernfalls liegt Ihr formatiertes Datum möglicherweise mehrere Stunden daneben. Dein datetime Spalten sollten UTF8 sein, also pass new DateTimeZone('UTC') als 3. Parameter, um sicherzustellen, dass PHP es weiß.

    – Eric Seestrand

    14. Mai 2019 um 19:16 Uhr

  • Dies ist die richtige Antwort, die das gewünschte Format des OP ausgibt. Achten Sie einfach auf die Zeitzonen

    – Buchhalter م

    26. August 2019 um 20:55 Uhr


Konvertieren Sie mit PHP von MySQL Datetime in ein anderes
Blitz

Eine einfachere Möglichkeit wäre, das Datum direkt in der MySQL-Abfrage anstelle von PHP zu formatieren. Siehe die Manueller MySQL-Eintrag für DATE_FORMAT.

Wenn Sie es lieber in PHP machen, dann brauchen Sie die Datum -Funktion, aber Sie müssen Ihren Datenbankwert zuerst in einen Zeitstempel umwandeln.

  • sein Fehler.. Klasse ‘App\Controller\DateTime’ nicht gefunden ..unter Verwendung von PHP 6.4

    – aswzen

    26. November 2017 um 11:49 Uhr


  • Wenn Sie in einem anderen Namensraum arbeiten, müssen Sie diesen mit einem vorangestellten Backslash aufrufen: \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date);

    – Hasenpriester

    4. Dezember 2017 um 22:30 Uhr

  • Vergessen Sie nicht, die Zeitzone anzugeben, wenn Sie Ihr Datumsobjekt erstellen! Andernfalls liegt Ihr formatiertes Datum möglicherweise mehrere Stunden daneben. Dein datetime Spalten sollten UTF8 sein, also pass new DateTimeZone('UTC') als 3. Parameter, um sicherzustellen, dass PHP es weiß.

    – Eric Seestrand

    14. Mai 2019 um 19:16 Uhr

  • Dies ist die richtige Antwort, die das gewünschte Format des OP ausgibt. Achten Sie einfach auf die Zeitzonen

    – Buchhalter م

    26. August 2019 um 20:55 Uhr


1646978651 253 Konvertieren Sie mit PHP von MySQL Datetime in ein anderes
Peter Mortensen

Vergiss alles. Benutz einfach:

$date = date("Y-m-d H:i:s",strtotime(str_replace("https://stackoverflow.com/",'-',$date)))

990050cookie-checkKonvertieren Sie mit PHP von MySQL Datetime in ein anderes Format

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy