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?

5voto

tfont Punkte 10180

Abhängig von Ihrer MySQL-Datetime-Konfiguration. Typischerweise: 2011-12-31 07:55:13 Format. Diese sehr einfache Funktion sollte den Zauber vollbringen:

function datetime()
{
    return date( 'Y-m-d H:i:s', time());
}

echo datetime(); // display example: 2011-12-31 07:55:13

Oder ein bisschen mehr Vorlauf, um die Frage zu beantworten.

function datetime($date_string = false)
{
    if (!$date_string)
    {
        $date_string = time();
    }
    return date("Y-m-d H:i:s", strtotime($date_string));
}

5voto

Rangel Punkte 288
SELECT 
 DATE_FORMAT(demo.dateFrom, '%e.%M.%Y') as dateFrom,
 DATE_FORMAT(demo.dateUntil, '%e.%M.%Y') as dateUntil
FROM demo

Wenn Sie nicht jede Funktion in Ihrem PHP-Code ändern wollen, um das erwartete Datumsformat anzuzeigen, ändern Sie es an der Quelle - Ihrer Datenbank.

Es ist wichtig, die Zeilen mit dem Namen als Operator wie im obigen Beispiel (als dateFrom, als dateUntil). Die Namen, die Sie dort schreiben, sind die Namen, die die Zeilen in Ihrem Ergebnis genannt werden.

Die Ausgabe dieses Beispiels wird sein

[Tag des Monats, numerisch (0..31)] [Monatsname (Januar..Dezember)] [Jahr, numerisch, vierstellig]

Beispiel: 5.August.2015

Ersetzen Sie die Punkte durch das Trennzeichen Ihrer Wahl und prüfen Sie die DATE_FORMAT(Datum,Format) Funktion für weitere Datumsformate.

4voto

phatduckk Punkte 1765

Sie können Ihre Abfrage auch die Zeit als Unix-Zeitstempel zurückgeben lassen. Das würde die Notwendigkeit beseitigen, die strtotime() und die Dinge auf der PHP-Seite etwas weniger intensiv zu gestalten...

select  UNIX_TIMESTAMP(timsstamp) as unixtime from the_table where id = 1234;

In PHP verwenden Sie dann einfach die date() Funktion, um sie nach Ihren Wünschen zu formatieren.

<?php
  echo date('l jS \of F Y h:i:s A', $row->unixtime);
?>

または

<?php
  echo date('F j, Y, g:i a', $row->unixtime);
?>

Ich mag diesen Ansatz im Gegensatz zur Verwendung von MySQL 's DATE_FORMAT Funktion, weil Sie damit dieselbe Abfrage zum Abrufen der Daten wiederverwenden können und die Formatierung in PHP ändern können.

Es ist ärgerlich, zwei verschiedene Abfragen zu haben, nur um die Darstellung des Datums in der Benutzeroberfläche zu ändern.

1voto

matt.j.crawford Punkte 392

Sie können Probleme mit Daten haben, die nicht in Unix Timestamp zurückgegeben werden, also funktioniert dies für mich...

return date("F j, Y g:i a", strtotime(substr($datestring, 0, 15)))

1voto

Mihir Vadalia Punkte 83

Das wird funktionieren...

echo date('m/d/y H:i (A)',strtotime($data_from_mysql));

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