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