481 Stimmen

Konvertierung von MySQL datetime in ein anderes Format mit PHP

Ich habe eine datetime Spalte in MySQL.

Wie kann ich es in die Anzeige umwandeln als mm/dd/yy H:M (AM/PM) PHP verwenden?

570voto

kta Punkte 18216

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 Zeichenkette und führt eine Reihe von Heuristiken durch, um diese Zeichenkette in einen Unix-Zeitstempel zu verwandeln.

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 der Redaktion : Diese Antwort ist hier wegen einer ursprünglichen Frage mit verwirrendem Wortlaut und der allgemeinen Nützlichkeit dieser Antwort für Google, auch wenn sie nicht direkt die Frage beantwortet, die jetzt besteht)

324voto

Tim Boland Punkte 9991

Um ein von MySQL abgerufenes Datum in das gewünschte Format zu konvertieren ( 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

Siehe dazu die PHP-Optionen zur Datumsformatierung um das Format anzupassen.

117voto

enobrev Punkte 21804

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

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

48voto

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

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

34voto

Hasenpriester Punkte 425

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');

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X