MySQL Datum Formatierung mit PHP

Sn4ke16

Mitglied
Guten Morgen, oder gute Nacht liebe Community =)

Ich hätte da ein kleines Problem, mit einer Datumformatierung. Und zwar geht es um ein News System.

Ich verwende in meiner MySQL Tabelle einen Timestamp, dieser soll automatisch gesetzt werden, was er auch tut. Er setzt den Timestamp im Format YYYY-MM-DD HH:MM:SS. So, da ich in meiner MySQL Abfrage aber nicht einfach das Datum ausgeben will - da könnt ichs ja mit DATE_FORMAT() formatieren - sondern alles, sprich *.

PHP:
$sql = "SELECT * FROM news_news ORDER BY id DESC";

Ich habe bereits eine Formtierung des Datums geschafft, allerdings bekomm ich nicht das gewünschte Ergebnis. Das Datum in der derzeitigen Spalte ist: 2008-12-16 00:23:06

PHP:
echo date('d.m.Y | H:i', $row['date']);

Ausgegeben bekomme ich dabei allerdings folgendes: 01.01.1970 | 01:33, und das stimmt ja nicht so ganz ;-)

Was mir persönlich wichtig ist, dass das Datum automatisch erstellt wird, sprich per current_timestamp. Deswegen kommt Date, Time oder DateTime erstmal nicht in Frage. Ist es möglich diesen Timestamp so zu formatieren das er RICHTIG ausgegeben wird und natürlich formatiert wird, wie oben?

Ich hoffe ihr könnt mir helfen, danke schonmal im vorraus.
Liebe Grüße, Sn4ke.

PS: Ich habe bereits mehr als ne Stunde gegooglet und geSuFut und nicht unbedingt das gefunden was ich wollte ;-)
 
Moin Sn4ke,

das PHP-date() erwartet ja einen UNIX-Timestamp, das hat nichts mit dem MySQL-Date-Typ zu tun.
Darauf deutet auch dein Ergebnis 1.1.1970 hin...denn da beginnt die UNIX-Zeitrechnung...date() kann halt nichts mit dem übergebenen Parameter anfangen.

Das Einfachste wäre es, du tust dies doch mit DATE_FORMAT() , dass du alles per * benötigst, sollte dich nicht hindern, zusätzlich noch das formatierte Datum zu holen:
SQL:
SELECT  *, 
        DATE_FORMAT(date,'%d.%m.%Y|%H:%i') AS formatiertesdatum 
          FROM news_news 
            ORDER BY id DESC

PHP:
echo $row['formatiertesdatum'];
 
Zuletzt bearbeitet:
Perfekt, funktioniert wunderbar =)

Jetzt hab ich noch n anderes Problem, bzw. eine Frage. Welche UTF-8 Kollation beherrscht die normale Deutsche Sprache + Umlate (ä,ü,ö,Ä,Ü,Ö,ß)?
 
Und zu guter letzt noch schnell ein paar weitere Fragen zu UTF-8.

Gibt es noch weitere UTF-8 Charsets, bzw. sozusagen erweiterungen wie bei MySQL?
Sollte ich NUR einen <Meta> Charset benutzen?
Sollte ich NUR einen header Charset benutzen?
Sollte ich beides Charsets verwenden?

So das wars dann aber auch ;-)
 
Andere UTF8-Zeichensätze gibt es nicht(für den Clienten), es gibt nur UTF8.

Mysql benötigt diese verschiedenen Kollationen zum Vergleichen, hier findest du ein Beispiel, wie sich unterschiedliche Kollationen auswirken: http://dev.mysql.com/doc/refman/5.1/en/charset-collation-effect.html



Zu dem Anderen: eine der beiden Varianten reicht da aus. Mit der header()-Variante würdest du evtl. 3-4 Bytes Datenverkehr einsparen :-)
 
Zuletzt bearbeitet:
Hmm wenn das so einfacht geht, dann frag ich mich warum mir in den News schonmal keine Umlaute angezeigt werden. Die werden wie immer "ausgeblendet".

Und das regt mich tierisch auf, kann nich mal etwas direkt auf Anhieb funktionieren ^^
 
Es reicht nicht aus, wenn nur ein Teil der Anwendung mit UTF8 arbeitet...alle Komponenten müssen dies tun, bspw. auch die Verbindung zu DB selbst.
Wenn du folgendes Query als erstes absetzt, arbeitet die Kommunikation zwischen PHP-Skript und DB-Server mit UTF8
Code:
"SET NAMES utf8"
 
Zurück