![]() Mailinglisten-Archive |
Ralf Eggert wrote: > 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 > >[..] > > Hat jemand eine Idee? Jo, das sollte dir helfen: http://de.php.net/manual/de/function.strptime.php zur Not mit regexen, aber das ist die langsamere M�glichkeit... Wobei du immernoch wissen musst, wie das Format aussieht... Wenn du versucht willst, das Format komplett selbst zu erkennen sind regexe wohl besser: /\(d+)(\D+(\d+))*/ ungetestet, aber vom Prinzip her kannst du so alle Zahlen, die durch nicht-zahlen in einem String von einander trennt in einen Array laden (mit preg_match()). Dann kannst du pr�ften, ob Beispielsweise die erste Zahl ein g�ltiges Jahr ist und dann versuchen nach %Y %m %d aufzul�sen usw. Du kannst nat�rlich auch den Seperator noch festlegen und rausholen: /\(d+)((\D+)(\d+))?(\3(\d+))*/ Also das regex ist jetzt mal echt nur noch vom Prinzip her g�ltig ;-). Das m�sstest du dir noch zurechtpfeilen... Aber vom Prinzip her k�nntest du dir so auch noch den Trenner mit rausholen und dann an einem . ein deutsches Format erkennen und an einem / ein amerikanisches usw. Wenn du kein regexfan bist, kannst du nat�rlich auch einfach mit einer Schleife den String Zeichenweise durchgehen und analysieren... Das ist vielleicht einfacher, wenn auch nicht performanter. > > Gru�, > > Ralf Yannik > > -- > Ralfs PHP Blog > Wissenswertes �ber PHP, das Zend Framework und anderes Ged�ns > http://www.ralfeggert.de/ >
php::bar PHP Wiki - Listenarchive