# RegEx überprüfung für Zeit (dd.mm.yyyy hh:mm:ss)



## Scorp1337 (10. Februar 2011)

Hi Leute,
wollte mal fragen wo das "Problem" liegt. Ich habe jetzt erfolgreich meinen Pattern zusammengestrickt:


```
/^((\d{2}).(\d{2}).(\d{4}))\s(([01]?\d|2[0-3]):([0-5][0-9]):([0-5][0-9]))/
```

Der nachfolgende war es vorher und irgendwie versthee ich nicht wieso dieser nicht auf Sekundenwerte >60 reagiert

```
/^((\d{2}).(\d{2}).(\d{4}))\s(([01]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)?)/
```

Grüße
Scorpion


----------



## Scorp1337 (10. Februar 2011)

Genauer gesagt mein gesamter Code ist hier:

```
if (!preg_match('/^((\d{2}).(\d{2}).(\d{4}))\s(([01]?\d|2[0-3]):([0-5][0-9]):([0-5][0-9]))/', $string[0], $match) 
	|| !checkdate($match[3], $match[2], $match[4])
	|| $match[6] > 24 
	|| $match[7] >= 60 
	|| $match[8] >= 60
	) {
	$error = 1;
}
```


----------



## timestamp (10. Februar 2011)

Sekundenwerte größer als 60 gibt es bei Uhrzeiten zunächst nicht. Außerdem Überprüfst du mit [0-5][0-9] nur auf alles zwischen 00 und 59, du müsstest also den ersten der beiden Ausdrücke bearbeiten. Kannst du uns noch ein Beispiel geben, bei dem es funktionieren soll (aber es nicht funktioniert)?


----------



## Scorp1337 (10. Februar 2011)

Hi,
ich glaube ich habe sogar schon den korrekten Code gepastet und es gar nicht gemerkt :-D

...war 'n langer Tag 

Also ich importiere generierte Logfiles von SVN bzw. InstallShield. Die Builddates sehen dann so aus (mit * werden jez korrekt als fehler ausgegeben):
10.10.2010 17:40:40
05.12.2010 17:59:59
03.12.2010 00:40:00
03.12.0001 17:40:40
31.02.2010 17:40:10 *
03.13.2010 17:40:40 *
03.00.2010 17:40:40 *
32.12.2010 17:40:40 *
03.6.2010 17:40:20 *
03.12.10 17:40:40 *
03.12.20 17:40:40 *
00.12.2010 17:40:40 *
03.12.2010 17:60:40 *
03.12.2010 23:40:70 *

Gute Nacht! 
Scorp

PS: Achja wieso meinst du eigentlich, dass ich "nur" auf das überprüfe...?


----------



## Flex (10. Februar 2011)

Ich würde hier auf eine formale Überprüfung verzichten und stattdessen mit [phpf]strtotime[/phpf] prüfen ob ein sinnvolles Ergebnis herauskommt.


----------

