phpbar.de logo

Mailinglisten-Archive

[php] Datumstring anhand Format parsen

[php] Datumstring anhand Format parsen

Ralf Eggert r.eggert at travello.de
Die Okt 17 19:13:30 CEST 2006


Hallo,

irgendwie habe ich gerade eine kleine Denkblockade, vielleicht kann mir
ja jemand auf die Sprünge helfen.

Ich habe einen String und ein Datumsformat und möchte den String anhand
des Datumsformat "parsen", d.h. in seine Bestandteile zerlegen, um
danach per checkdate() zu prüfen, ob es sich dabei um ein gültiges Datum
handelt.

Das Format soll frei angegeben werden können, solange es den möglichen
Parametern von date() entspricht. Wobei es generell nur um Tage, Monate
und Jahre gehen soll.

Beispiel 1:
String: 17.10.2006
Format: %d.%m.%Y

Beispiel 2:
String: 2006-10-17
Format: %Y-%m-%d

Beispiel 3:
String: 17/10/2006
Format: %d/%m/%Y

Für Beispiel 1 wäre dies eine mögliche Lösung:
list($day, $month, $year) = sscanf($value, '%d.%d.%d');

Für Beispiel 2 wäre dies eine mögliche Lösung:
list($year, $month, $day) = sscanf($value, '%d-%d-%d');

Und für Beispiel 3 wäre dies eine mögliche Lösung:
list($day, $month, $year) = sscanf($value, '%d/%d/%d');

Ich suche eine Lösung, die für alle Formate gilt und bei der ich nicht
abhängig vom Format die Reihenfolge der Parameter in list() umsortieren
muss.

Ich habe irgendwie das Gefühl, als wenn die Lösung klar auf der Hand
liegt, ich sie aber nicht sehe... ;-(

Hat jemand eine Idee?

Gruß,

Ralf

--
Ralfs PHP Blog
Wissenswertes über PHP, das Zend Framework und anderes Gedöns
http://www.ralfeggert.de/


php::bar PHP Wiki   -   Listenarchive