Mailinglisten-Archive |
> In einer Tabelle soll das Datum im Format "DATE (0000-00-00)" abgelegt > werden. Am Format will ich nichts ändern. > > Momentan nehme ich beim Einfügen das dt. Datumformat (05.09.2003) > mittels "substr()" auseinander und setzte es wie benötigt wieder > zusammen. > > Doch wie kann ich nun auf andere (weil fälschlicherweise) eingegebene > Delimeter überprüfen, bzw. ob die Tagesangabe/Monatsangabe mit "0" > beginnt, das Jahr 2- oder 4-stellig ist usw.? > > Und, dann muss ich es auch vom MySQL-Format wieder ins dt. > bringen.können. > > Hat sich schonmal jemand damit auseinandergesetzt? Oder, gibt es gar > doch was fertiges? 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 www.sebastianmendel.de www.tekkno4u.de www.nofetish.com
php::bar PHP Wiki - Listenarchive