MySQL Datumsformat als timestamp
Manuel
- php
Hallo zusammen!
Ich beschäftige mich seit kurzem mit PHP / MySQL! Hab auch schon so einiges zusammengebracht aber was ich einfach nicht verstehn will ist das mit den Datumformatierungen unter PHP.
Folgendes Problem:
Ich habe eine MySQL Datenbank mit einer Tabelle "Veranstaltungen" und einer Spalte "Datum". Diese Spalte habe ich als Typ "DATE" definiert (hoffe das ist richtig). Ich habe das alles mit MyPHPAdmin gemacht. Wenn ich nun einen Datensatz anlege sieht das Datum folgendermaßen aus:
2003-05-24
In meiner Webseite würde ich dann aber gern stehen haben:
Samstag, 24. Mai 2003 (oder auch auf englisch, das wär mir egal)
Ich was das man mit "date" ein Datum formatieren kann und mit "mktime" ein Datum in einen timestamp konvertieren kann aber wie krieg ich das über MySql hin?
$abfrage = @mysql_query("SELECT * from events order by datum ASC");
while($eintraege = mysql_fetch_object($abfrage)) {
echo date ("D, d. M Y", mktime($eintraege->datum));
Das geht ja nicht da man bei "mktime" Zeit und Datum als Paremeter eintragen muss!
Nun ja, das Feld als DATE du deklarieren war eigentlich nicht so schlau.
Du musst es als int speichern und dann mittels php den aktuellen timestamp speichern.
Dann in PHP machst du:
date("H:i:s, d.m.Y", $row["timestamp"]);
Hallo Manuel,
Diese Spalte habe ich als Typ "DATE" definiert (hoffe das ist richtig).
ja, das ist richtig
Samstag, 24. Mai 2003 (oder auch auf englisch, das wär mir egal)
php und mysql geben den Tag idR. auf Englisch zurück, das lässt sich aber auf Deutsch "übersetzen"
$abfrage = @mysql_query("SELECT * from events order by datum ASC");
du brauchst die mysql-Funktion DATE_FORMAT()[1]:
$query = "SELECT DATE_FORMAT(datum,'%e.%c.%Y') as datum,anderespalte FROM events ORDER BY datum ASC";
$abfrage = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_assoc($abfrage)){
// hier sollte dir echo $row['datum'] dann 24.5.2003 ausgeben (wie du ein anderes Format bekommst steht auch unter [1].
}
while($eintraege = mysql_fetch_object($abfrage)) {
warum eigentlich immer mysql_fetch_object()?
echo date ("D, d. M Y", mktime($eintraege->datum));
php ist da überflüssig - mysql kann das selbst :-)
Grüße aus Nürnberg <- Verabschiedung ist auch ganz nett
Tobias
[1] http://www.mysql.de/doc/de/Date_and_time_functions.html (nach dem Funktionsnamen suchen)
Hallo Tobias,
mit DATE_FORMAT hats geklappt!
Vielen Dank für deine Hilfe.
Grüße aus Krems,
Manuel