Il y a une merveilleuse bibliothèque de date pour JavaScript appelé DateJS. Cela rend les opérations de date extrêmement simples.
Votre première étape est, bien sûr, d'analyser la date fournie. DateJS offre beaucoup de fonctionnalités d'analyse syntaxique, telles que:
Date.parse("Mar 3 2010");
Date.parse('March 20th 1973');
Date.parse("03 12 2010");
Une fois que vous avez analysé la date, vous pouvez le comparer à la date il y a 18 ans. C'est aussi facile avec DateJS
var userBDay = Date.parse("Mar 3 1970");
var eighteenYearsAgo = (18).years().ago();
var is18 = (userBDay >= eighteenYearsAgo);
Vous assumez bien sûr que l'utilisateur est honnête. Sans oublier que JS peut être désactivé ou modifié côté client. Mais c'est une discussion entièrement différente.
EDIT: Avait oublié votre mention de ne faire que la vérification une fois par jour. Cela nécessiterait soit:
- Cookie (côté client)
- HTML5 LocalStorage (côté client)
- session, où la dernière vérification peut être fournie soit au moment du rendu de la page ou par le biais d'une requête AJAX. (côté serveur avec le composant côté client)
Cette solution était obsolète même quand il a été suggéré – Matteo
Cette bibliothèque semble modifier Array.prototype, ce qui est considéré comme une mauvaise pratique –