TÃmhle Älánkem bych rád zapoÄal svou obÄasnou knihovnu regulárnÃch výrazů, i když vÃm že podobné projekty se už nÄ›jaký ten pátek po internetu válejÃ.
Na úvod jsem si Å¡etÅ™il Äasovou známku. Výraz propustà téměř vÅ¡echny platné formáty, kterými lze v MySQL nastavovat sloupec TIMESTAMP. KromÄ› formátu kontroluje také platost data a Äasu, a věřte nebo ne, poradà si i s pÅ™estupnými roky. Možná proto je tak nevkusnÄ› dlouhý. Zadané datum a Äas mohou být v rozmezà 1970-01-01 00:00:00 až 2037-12-31 23:59:59. Výraz peÄlivÄ› zkontrolován cyklem v celém rozsahu :-)
/^((((19)?[7-9][0-9]|(20)?([0-2][0-9]|3[0-7]))[[:punct:]]+(0?2[[:punct:]]+(0?[1-9]|1[0-9]|2[0-8])|
(0?[469]|11)[[:punct:]]+(0?[1-9]|[12][0-9]|30)|(0?[13578]|10|12)[[:punct:]]+(0?[1-9]|[12][0-9]|3[01])))|
((19)?(8[048]|[79][26])|(20)?([02][048]|[13][26]))[[:punct:]]+0?2[[:punct:]]+29)([[:punct:]\s]+([01]?[0-9]|2[0-3])
([[:punct:]]+([0-5]?[0-9])([[:punct:]]+([0-5]?[0-9]))?)?)?$/
1970-01-21
2037-3#24 16&39
08-3-24 16:39:42
2008?03+24@!_16%39?42
200803-24-16-39-42
20080324163942
DÃky za inspiraci, použÃt aserci mÄ› nenapadlo.
Kontrola obecného data (nejen v rozsahu 1970 - 2037) v Äeském zápisu: http://php.vrana.cz/kontrola-data.php