phpbar.de logo

Mailinglisten-Archive

[php] Re: Datum

[php] Re: Datum

Martin Ramsch m.ramsch_(at)_computer.org
Thu, 9 Sep 1999 14:17:37 +0200


Carsten Brenner schrieb am Donnerstag, den  9. September 1999:
> Wie kann ich in PHP ein Datums-String umstricken z.B.
> 
> "Mon Aug 23 04:02:01 1999"
> 
> in ein Format dass MySQL in einem DateTime Feld akzeptiert??

Es geht vermutlich um Daten aus der "Date:"-Headerzeile von
Internet-E-Mails?  Dann ist das gar keine so leichte Aufgabe, weil
Dein Beispiel nur eines von unzählig vielen Formaten darstellt, die in
Gebrauch sind - und Du müßtest prinzipiell alle erkennen können ...

Wenn Deine Daten wirklich in genau obigem Format sind, dann kannst Du
das relativ leicht umrechnen.  Die einzige kleine Hürde ist der
Monatsname, aber mit Hilfe eines assoziativen Arrays ist auch das
schnell gelöst:

   // Vorbereitung:  Zuordnungstabelle Monatskürzel -> Monatsnummer.
   $monat = array('JAN'=> 1, 'FEB'=> 2, 'MAR'=> 3, 'APR'=> 4,
                  'MAY'=> 5, 'JUN'=> 6, 'JUL'=> 7, 'AUG'=> 8,
                  'SEP'=> 9, 'OCT'=>10, 'NOV'=>11, 'DEC'=>12);
   // Datumstring in Wort zerteilen.
   $teil = explode(' ', $datum);
   // Datum für MySQL im ISO8601-Format zusammenbauen.
   $isodatum = sprintf('%04d-%02d-%02d %s',
                       $teil[4], $monat[strtoupper($teil[1])],
                       $teil[2], $teil[3]);

Die Großschreibung der Monatskürzel in $monat zusammen mit dem
strtoupper sorgt dafür, daß die Monatskürzel im Datum in beliebiger
Groß-/Kleinschreibung sein dürfen.  Die Nutzung von %04d bzw. %02d in
sprintf sorgt für die richtige Formatierung, selbst wenn z.B. der Tag
nur einstellig im Datum angegeben ist.  Beides also nicht unbedingt
nötig, macht die Sache aber robuster.


Es gibt übrigens auch ein nettes kleines Perl-Skript, das Mails aus
einer Datei liest und in eine MySQL-Datenbank speichert:
<URL: http://www.wipol.uni-bonn.de/MySQL/Downloads/Contrib/mail_to_db.pl.tar.gz >
Vielleicht kannst Du das brauchen?

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7


php::bar PHP Wiki   -   Listenarchive