Datum: Vom String zum Timestamp

tofa

Mitglied
Hallo zusammen,

ich habe folgendes Problem:
Rund 4000 Gästebucheinträge müssen von einer Datei in eine Datenbank gespeichert werden, soweit eigentlich kein Problem. Allerdings wird das Datum jedes Eintrags als String gespeichert, der so formatiert ist:

August 8, 2005

Also beginnend mit dem Monat ausgeschrieben, gefolgt von einem Leerzeichen mit dem Tag als ein- oder zweistellige Ziffer, gefolgt von einem Komma und Leerzeichen und abschließend mit dem Jahr als vierstellige Ziffer.

Nun benötige ich aber das Datum als Unix-Timestamp. Gibt es in PHP eine einfache Möglichkeit aus dem String einen Timestamp zu machen? Vielleicht mit regulären Ausdrücken, die mir den String drei Variablen für Monat, Tag und Jahr zerlegen, welche ich dann mktime übergeben könnte? Doch wie ließe sich ein derartiger Ausdruck formulieren?

Vielen Dank im Voraus,
tofa
 
Ich würde den String mit [phpf]preg_split[/phpf] zerlegen. Der Ausdruck muß bei "Komma gefolgt von Leerzeichen" oder "nur Leerzeichen" trennen. Das ergibt den Ausdruck "/,\ |\ /".
Ich würde noch ein Array mit den Monatsnamen als Schlüssel und der entsprechenden Zahl des Monats als Wert anlegen, um aus dem Monatswert einfach die Zahl zu erhalten oder Du machst eine zwölf Elemente umfassende switch-Anweisung.

Gruß hpvw
 
Wenn das Datum immer das gleiche Format hat kann man auch mit [PHPF]sscanf[/PHPF] arbeiten,
wenn man mit RegEx nicht so vertraut ist.

PHP:
$str = 'August 8, 2005';
$scaned = sscanf($str, "%s %d, %d");
echo $scaned[0]; // August
echo $scaned[1]; // 8
echo $scaned[2]; // 2005
 
Zurück