phpbar.de logo

Mailinglisten-Archive

[php] Wandeln von Datumseingaben (mittles Funktion?)

[php] Wandeln von Datumseingaben (mittles Funktion?)

Steffen Kother steffen.kother at gmx.net
Fre Sep 5 10:44:32 CEST 2003


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