Datum ausgeben aus MySQL
Eben habe ich wieder mal Stunden verbraten, eine vernünftige Funktion zum Ausgeben eines Datums aus MySQL zu suchen.
Nichts hat bei mir wirklich gepasst - jetzt habe ich eine eigene Funktion geschrieben:
function date_mysql2Cyrill($date, $format) {
$d = explode("-",$date);
$stempel = sprintf("%02d/%02d/%04d", $d[1], $d[2], $d[0]);
$stempel = strtotime($stempel);
//$format: Formate sind unter http://www.php.net/manual/de/function.strftime.php zu finden
setlocale(LC_ALL, "de_CH.UTF-8");
return strftime($format, $stempel);
}
Erklärung:
In der DB steht ein Datum - im Format „date” (oder auch„timestamp”):
z.B. 2011-06-07 oder 2011-05-05 00:02:20.
Dieses Datum soll nun in irgend einer bei uns geläufigen Form eingesetzt werden, z.B. 07. Juni 2011.
Dazu rufe ich die Funktion auf, als $date gebe ich das Feld aus der DB ein, als Format suche ich mir das gewünschte auf http://www.php.net/manual/de/function.strftime.php.
Für diese Beispiel wäre das:
date_mysql2Cyrill($row_rs_fenster_daten['end_datum'], "%d. %B %Y");
Erklärung der Funktion
In der ersten Zeile wird das Datum anhand der Striche (-) in ein Array aufgeteilt ($d).
Diese Teile werden in der nächsten Zeile zu einer Var $stempel zusammengesetzt - dies in „englischer Textform”, so dass diese Var mit strtotime in einen „UNIX-Zeitstempel (Timestamp)” umgewandelt werden kann (Zeile 3).
In Zeile 4 hatte ich zuerst das Format - damit die Funktion modularer einsetzbar wird, habe ich das Format in die Funktions-Parameter gesetzt. Ich lasse die URL zum Nachschlagen der Optionen drin.
Ohne das richtige setlocale werden meist englische Wochentage, Monate und so ausgegeben. Bei Hostpoint braucht es die Angaben in Zeile 5.
Tja, Zeile 6 schreibt dann das Gewünschte in den Return.
