Mailinglisten-Archive |
Sebastian Tobias Mendel schrieb: > es gibt da ein PEAR-Paket, das hatte aber, glaube ich, diese Funktionen > nicht, deshalb habe ich mir mal selber was gemacht: > > wandelt amerikanische(m/d/y) und DIN(d.m.y) Datumsformate > in ISO(YYYY-MM-DD) um > > erwartet allerdings eine fehlerfreies Format! > und nimmt bei fehlendem Jahrhundert, also 03 statt 2003, das aktuelle > Jahrhundert als gegeben! > > function Date2Iso($datestring) > { > $datestring = trim($datestring); > if ( preg_match('|\.|', $datestring) ) > { > // date is in form DD.MM.YYYY or D.M.YY > $date = explode('.', $datestring); > if ( strlen($date[2]) == 2 ) > { > // no century givven, so we take the current > $date[2] = strftime("%C") . $date[2]; > } > $day = $date[0]; > $month = $date[1]; > $year = $date[2]; > } > elseif ( preg_match('|\/|', $datestring) ) > { > // date is in form m/d/y > $date = explode('/', $datestring); > if ( strlen($date[2]) == 2 ) > { > // no century givven, so we take the current > $date[2] = strftime("%C") . $date[2]; > } > $day = $date[1]; > $month = $date[0]; > $year = $date[2]; > } > elseif ( preg_match('|\-|', $datestring) ) > { > // date is in form YYYY-MM-DD > $date = explode('-', $datestring); > if ( strlen($date[0]) == 2 ) > { > // no century givven, so we take the current > $date[0] = strftime("%C") . $date[0]; > } > $day = $date[2]; > $month = $date[1]; > $year = $date[0]; > } > else > { > return false; > } > > $datestring = sprintf("%04d-%02d-%02d", $year, $month, $day); > return $datestring; > } > > -- > Sebastian Mendel Hallo Sebastian, Danke für das Script, 'n Ansatz hätt' auch genügt ;-) Es ist etwa das, was ich mir vorm geistigen Auge vorgestellt habe. Mir fehlte "pregmatch()", bzw. habe damit noch nie gearbeitet. Werd's gleich mal ausprobieren. Viele Grüße, Steffen
php::bar PHP Wiki - Listenarchive