Datumsumwandlungen Formular - mysql und zurück
am 30.07.2006 10:54:26 von Herbert FidesserHi,
habe zwei kleine Funktionen zur Datumsumwandlung aus einem Formular
für die Übergabe an Mysql und umgehehrt geschrieben. Es werden nicht
alle Möglichkeiten abgefangen, aber für meine Zwecke reicht es.
Wenn jamand Verbesserungsvorschläge hat, oder auf Fehler hinweisen
will, bin ikch dankbar.
...oder renne ich offene Türen ein und PHP bietet dafür
Standrdfunktionen, die ich nicht kenne? ... dann war's halt eine
interessante Übung.
Meine Funktionen:
//Datumsstring in mysql-Datum umwandeln (yyyy-mm-dd)
function mysql_datum($datstr) {
$dmax =3D array(31,28,31,30,31,30,31,31,30,31,30,31);
$chk =3D str_replace("/", "-", $datstr);
$chk =3D str_replace(".", "-", $chk);
$chk =3D explode("-", $chk);
$cnt =3D 0;
foreach ($chk as $key=3D>$elem) {
$cnt =3D $cnt + 1 ;
${"chk_$key"} =3D $elem;
}
switch ($cnt) { //Anzahl der Elemente prüfen
case 0: //kein Datum
case 1: //kein Datum
$rstr=3D"";
break;
case 2: //Datum im lfd.Jahr ohne Jahresangabe
// Jahr anfügen
$chk_2 =3D date("Y");
case 3: //Normales Datum
//2. Element prüfen (immer Monat)
if ($chk_1 > 12) {
$rstr=3D"";
break;
} else {
$mo =3D $chk_1;
}
//1. u. 3. Element prüfen mögl: J, T
if ($chk_0 > $dmax[$mo - 1]) {
$jr =3D $chk_0;
$tg =3D $chk_2;
} else {
$tg =3D $chk_0;
$jr =3D $chk_2;
}
$rstr =3D "$jr-$mo-$tg";
}
return $rstr;
}
//mysql-Datum formatiert ausgeben
function format_datum($mydat, $fmt) {
$chk =3D explode("-", $mydat);
foreach ($chk as $key=3D>$elem) {
${"chk_$key"} =3D $elem;
}
return date($fmt, mktime(0,0,0,$chk_2, $chk_1, $chk_0));
}
?>
Gruß
Herbert