Vinzenz Mai: php events - datum auswerfen

Beitrag lesen

Hallo Joe,

ich steh grad ziemlich auf der leitung. aus meiner mysql-datenbank will ich die drei nächsten events auswerfen, was ja auch prima klappt. was nicht klappt ist die darstellung des datums... wäre für anregungen dankbar!

meine Anregung hat zunächst nichts mit der Darstellung des Datums zu tun. Aber lies Dir sie bitte dennoch durch.

$test = '';
$today = strtotime ("00:00 today");

Aha, $today enthält einen Timestamp.

$timestamp = time();
$abfrage = "SELECT event_start, event_start>='$today', event_title FROM event ORDER BY event_start DESC LIMIT 3";

Daraus folgere ich, dass Du den Zeitpunkt des Events als Timestamp gespeichert hast. Das ist meiner Meinung nach keine gute Idee. Besser ist es dafür genau den Datentyp zu verwenden, der für Zeitangaben vorgesehen ist: DATETIME.

Mit Hilfe von MySQL-Datums- und Zeit-Funktionen könntest Du Dir problemlos Deine Abfrage konstruieren, die auf irgendwelches PHP vorher verzichtet. Das wäre viel schöner.

$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
$datum = date("d.m",$timestamp); //GEHÖRT DAS HIER HIN?

Hier ist es zumindest nicht schön. Irgendwo solltest Du Dein aktuelles Datum, das Du ja ausgeben willst, schon formatieren.

{$text .= '<img border="0" src=".../bullet2.gif">&nbsp;</img>'.$datum.':&nbsp;<a href=".../event.php?'.$row->event_start.'">'.$row->event_title.'</a><br/>';

$row->event_start enthält die Zeitangabe, die Du schön formatieren willst.
Wenn Du als Datentyp DATETIME gewählt hast, dann kannst Du Dein Datumsformat sogar mit MySQL bereits vorgeben.

Fazit: Meiner Meinung nach fährt man fast immer am besten, wenn man für eine Spalte den angemessenen Datentyp des Datenbankmanagementsystems verwendet. Für normale Zeitangaben ist dies bei allen DBMS ein Datums/Zeit-Typ. Timestamps für so etwas zu verwenden halte ich für ungeschickt.

Freundliche Grüße

Vinzenz