Frage

Ich habe ein datetime Spalte in MySQL.

Wie kann ich es in die Anzeige umwandeln als MM/TT/JJ H:M (AM/PM) mit PHP?

War es hilfreich?

Lösung 2

Um ein Datum von MySQL in das Format abgerufen konvertieren angefordert (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

zu den PHP date Formatierungsoptionen das Format anzupassen.

Andere Tipps

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 aus, 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, da es sich um eine Originalfrage mit verwirrender Formulierung handelte und die allgemeine Nützlichkeit dieser Antwort für Google auch dann gegeben war, wenn sie die jetzt bestehende Frage nicht direkt beantwortete.)

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

$oDate = new DateTime($row->createdate);
$sDate = $oDate->format("Y-m-d H:i:s");
$valid_date = date( 'm/d/y g:i A', strtotime($date));

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

Schließlich ist die richtige Lösung für PHP 5.3 und höher:

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

Ein einfacher Weg, um das Datum direkt in der MySQL-Abfrage, anstelle von PHP zu formatieren sei. Finden Sie in der MySQL manuelle Eingabe für DATE_FORMAT .

Wenn Sie lieber es in PHP tun würde, dann müssen Sie die Datum Funktion, aber Sie‘ ll müssen zuerst die Datenbank-Wert in einen Zeitstempel umwandeln.

Vergessen Sie alles. Verwenden Sie einfach:

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

richtig ein DateTime Objekt in PHP zu formatieren in MySQL Speicher das standardisierte Format verwenden, die MySQL verwendet, die ISO 8601 .

PHP dieses Format als eine Konstante seit Version 5.1.1 gespeichert hatte, und ich kann es sehr empfehlen die Verwendung anstatt manuell die Zeichenfolge jedes Mal eingeben.

$dtNow = new DateTime();
$mysqlDateTime = $dtNow->format(DateTime::ISO8601);

Dies und eine Liste von anderen PHP Datetime-Konstanten sind unter http://php.net/manual/en/class.datetime.php#datetime.constants.types

Dies sollte ein Feld in einem SQL-Abfrage-Format:

SELECT DATE_FORMAT( `fieldname` , '%d-%m-%Y' ) FROM tablename

Mit der Datum Funktion:

<?php
    echo date("m/d/y g:i (A)", $DB_Date_Field);
?>

Abhängig von Ihrer MySQL Datetime-Konfiguration. Typisch: 2011-12-31 07.55.13 Format. Diese sehr einfache Funktion sollte die Magie tun:

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 voraus, um die Frage zu entsprechen.

function datetime($date_string = false)
{
    if (!$date_string)
    {
        $date_string = time();
    }
    return date("Y-m-d H:i:s", strtotime($date_string));
}
SELECT 
 DATE_FORMAT(demo.dateFrom, '%e.%M.%Y') as dateFrom,
 DATE_FORMAT(demo.dateUntil, '%e.%M.%Y') as dateUntil
FROM demo

Wenn Sie nicht wollen, jede Funktion in Ihrem PHP-Code ändern, das erwartete Datum Format zu zeigen, ändern Sie es an der Quelle -. Ihre Datenbank

Es ist wichtig, die Zeilen mit dem wie Operator, wie im Beispiel oben (als datefrom, wie dateUntil) zu nennen. Die Namen, die Sie schreiben, es sind die Namen, werden die Zeilen in der Folge aufgerufen werden.

Die Ausgabe dieses Beispiels wird

[Tag des Monats, numerisch (0..31)]. [Monatsname (January..December)]. [Jahr, numerisch, vierstellig]

Beispiel: 5.August.2015

Ändern Sie die Punkte mit dem Separator der Wahl und überprüfen Sie die DATE_FORMAT (Datum, Format) Funktion für weitere Datumsformate.

Sie können auch haben Ihre Abfrage die Zeit als Unix-Zeitstempel zurück. Das würde loszuwerden, die Notwendigkeit strtotime() zu nennen und die Dinge ein bisschen weniger intensiv auf der PHP-Seite ...

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

Dann in PHP benutzen Sie einfach die date() Funktion zu formatieren je nachdem, welche Art und Weise Sie möchten.

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

oder

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

Ich mag diesen Ansatz im Gegensatz zur Verwendung MySQL 's DATE_FORMAT Funktion, da sie es ermöglicht Sie dieselbe Abfrage erneut zu verwenden, die Daten zu packen und ermöglicht es Ihnen, die Formatierung in PHP zu ändern.

Es ist ärgerlich, nur zwei verschiedene Abfragen zu haben, um die Art und Weise zu ändern Sie das Datum in der Benutzeroberfläche aussieht.

können Sie Schwierigkeiten haben, mit Daten nicht in Unix-Timestamp zurückgegeben, so das funktioniert für mich ...

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

Dies funktioniert ...

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

Mit PHP Version 4.4.9 & MySQL 5.0, das für mich gearbeitet:

$oDate = strtotime($row['PubDate']);
$sDate = date("m/d/y",$oDate);
echo $sDate

PubDate ist die Spalte in MySQL .

$date = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $_POST['date'])))."'";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top