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