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