Moderator |
|
Ja, daarom gaf ik al aan dat je de controle moet splitsen .
Enerzijds controleer je een patroon: NN/NN/NNNN (met N een cijfer van/met 0 tot/met 9).
Aan de andere kant moeten die stukken aan een bepaald interval voldoen:
De eerste NN (als je dd/mm/yyyy aanhoudt) moet tussen 01 en 31 zitten, daarnaast heeft deze extra condities op grond van maand en schrikkeljaar.
De tweede NN moet tussen 01 en 12 zitten.
En NNNN hangt af wat je als zinnig jaartalbereik beschouwt.
Die oplossing (met omwisseling van dd en mm) stond exact op stackoverflow. Waarom het wiel opnieuw uitvinden?
Daarnaast heb je misschien nog andere condities als "mag niet in het verleden vallen" (bijvoorbeeld voor een afspraak) of "mag niet in de toekomst vallen" (bijvoorbeeld voor een geboortedatum).
Ik hoop trouwens niet dat je datums zo opgeslagen hebt in een database ofzo? Gebruik hiervoor DATE, DATETIME of zelfs een UNIX timestamp, alles is beter dan voorgeformatteerde opmaak. Het beste is om het formatteren van data (niet alleen datums ) zo lang mogelijk uit te stellen. Bij voorkeur doe je dit dus pas bij het afdrukken ervan, zodat je te allen tijde het format eenvoudig kunt veranderen. |