begin process at 2012 02 12 00:05:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > VERIFICATION DE DATE JJ/MM/AAAA

VERIFICATION DE DATE JJ/MM/AAAA


 Information sur la source

Note :
4,8 / 10 - par 5 personnes
4,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date & Heure Niveau :Initié Date de création :28/10/2004 Vu :23 293

Auteur : Magidev

Ecrire un message privé
Site perso
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Ce scripte prend en compte les années bissextiles et le nombre de jours, l'avantage c'est qu'il averti l'utilisateur de son erreur.

Source

  • mot=document.frmInscription.txtDateNaissance.value;
  • erreur=false;
  • if (mot.length!=10){alert("Veuillez introduire votre date de naissance au format JJ/MM/AAAA (exemple : 12/02/1981)");Erreur=true;return;}
  • else{
  • motjour=mot.substring(0,2);motmois=mot.substring(3,5);
  • motan=mot.substring(6,10);motsep=mot.charAt(2)+mot.charAt(5);}
  • if (isNaN(motjour+motmois+motan)|| motan>3000 ||motan<1900 || motsep!="//"){alert("Veuillez introduire votre date de naissance au format JJ/MM/AAAA (exemple : 12/02/1981)");Erreur=true;return;}
  • else {choix="";
  • if (motan-(parseInt(motan/4)*4)==0){choix="bi"};
  • if (motan-(parseInt(motan/4)*4)==0&&motan-(parseInt(motan/100)*100)==0)
  • {choix=""};
  • if (motan-(parseInt(motan/4)*4)==0&&motan-(parseInt(motan/400)*400)==0)
  • {choix="bi"}
  • switch (motmois){
  • case "01":if(motjour<1 || motjour>31){alert("Le mois de Janvier comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
  • break;
  • case"02":if(choix=="bi"){if(motjour<1 || motjour>29){alert("Le mois de Février comporte 29 jours car l'année choisie est bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 29.");Erreur=true;return;}}
  • else{if(motjour<1 || motjour>28){alert("Le mois de Février comporte 28 jours car l'année choisie n'est pas bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 28.");Erreur=true;return;}};
  • break;
  • case "03":if(motjour<1 || motjour>31){alert("Le mois de Mars comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
  • break;
  • case "04":if(motjour<1 || motjour>30){alert("Le mois de Avril comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");Erreur=true;return;};
  • break;
  • case "05":if(motjour<1 || motjour>31){alert("Le mois de Mai comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
  • break;
  • case "06":if(motjour<1 || motjour>30){alert("Le mois de Juin comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");Erreur=true;return;};
  • break;
  • case "07":if(motjour<1 || motjour>31){alert("Le mois de Juillet comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
  • break;
  • case "08":if(motjour<1 || motjour>31){alert("Le mois de Août comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
  • break;
  • case "09":if(motjour<1 || motjour>30){alert("Le mois de Septembre comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");Erreur=true;return;};
  • break;
  • case "10":if(motjour<1 || motjour>31){alert("Le mois de Octobre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
  • break;
  • case "11":if(motjour<1 || motjour>30){alert("Le mois de Novembre comporte 30 jours, veuillez choisirune date de naissance comprise en 1 et 30.");Erreur=true;return;};
  • break;
  • case "12":if(motjour<1 || motjour>31){alert("Le mois de Décembre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
  • break;
  • default:alert("Le mois que vous avez entré n'est pas valide. Choisissez un mois compris entre 1 et 12.");Erreur=true;return;
  • }
  • }
mot=document.frmInscription.txtDateNaissance.value;
erreur=false;
    if (mot.length!=10){alert("Veuillez introduire votre date de naissance au format JJ/MM/AAAA (exemple : 12/02/1981)");Erreur=true;return;}
    else{
    motjour=mot.substring(0,2);motmois=mot.substring(3,5);
    motan=mot.substring(6,10);motsep=mot.charAt(2)+mot.charAt(5);}
    if (isNaN(motjour+motmois+motan)|| motan>3000 ||motan<1900 || motsep!="//"){alert("Veuillez introduire votre date de naissance au format JJ/MM/AAAA (exemple : 12/02/1981)");Erreur=true;return;}
    else {choix="";    
    if (motan-(parseInt(motan/4)*4)==0){choix="bi"};
    if (motan-(parseInt(motan/4)*4)==0&&motan-(parseInt(motan/100)*100)==0)
    {choix=""};
    if (motan-(parseInt(motan/4)*4)==0&&motan-(parseInt(motan/400)*400)==0)
    {choix="bi"}
    switch (motmois){
    case "01":if(motjour<1 || motjour>31){alert("Le mois de Janvier comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case"02":if(choix=="bi"){if(motjour<1 || motjour>29){alert("Le mois de Février comporte 29 jours car l'année choisie est bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 29.");Erreur=true;return;}}
              else{if(motjour<1 || motjour>28){alert("Le mois de Février comporte 28 jours car l'année choisie n'est pas bissextile.\nVeuillez choisir une date de naissance comprise en 1 et 28.");Erreur=true;return;}};
    break;
    case "03":if(motjour<1 || motjour>31){alert("Le mois de Mars comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "04":if(motjour<1 || motjour>30){alert("Le mois de Avril comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");Erreur=true;return;};
    break;
    case "05":if(motjour<1 || motjour>31){alert("Le mois de Mai comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "06":if(motjour<1 || motjour>30){alert("Le mois de Juin comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");Erreur=true;return;};
    break;
    case "07":if(motjour<1 || motjour>31){alert("Le mois de Juillet comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "08":if(motjour<1 || motjour>31){alert("Le mois de Août comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "09":if(motjour<1 || motjour>30){alert("Le mois de Septembre comporte 30 jours, veuillez choisir une date de naissance comprise en 1 et 30.");Erreur=true;return;};
    break;
    case "10":if(motjour<1 || motjour>31){alert("Le mois de Octobre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    case "11":if(motjour<1 || motjour>30){alert("Le mois de Novembre comporte 30 jours, veuillez choisirune date de naissance comprise en 1 et 30.");Erreur=true;return;};
    break;
    case "12":if(motjour<1 || motjour>31){alert("Le mois de Décembre comporte 31 jours, veuillez choisir une date de naissance comprise en 1 et 31.");Erreur=true;return;};
    break;
    default:alert("Le mois que vous avez entré n'est pas valide. Choisissez un mois compris entre 1 et 12.");Erreur=true;return;	
}
}

 Conclusion

Il suffit de verifier si erreur est egal a true ou false


 Sources de la même categorie

Source avec Zip CALENDRIER ANNUEL UNIVERSEL AVEC SAINTS DU CALENDRIER ET FÊT... par 007Julien
OBTENIR LE NOMBRE DE JOURS D'UN MOIS SUIVANT SON ANNÉE par hugolegrand
SAINT DU JOUR par tefa24600
Source avec Zip Source avec une capture NIPCLOCK 1.2 par neep
COMPTE À REBOURS POUR ÉVÉNEMENTS À RÉPÉTITION par CSIBern

Commentaires et avis

Commentaire de traversbourquin le 29/10/2004 21:11:51

Beaucoup plus court et tout aussi performant :

<script>
function isDateValid(saisie) {
if (saisie == "") return false;
saisie = (saisie).split("/")
if ((saisie.length != 3) || isNaN(parseInt(saisie[0])) || isNaN(parseInt(saisie[1])) ||

isNaN(parseInt(saisie[2]))) return false
var laDate = new Date(eval(saisie[2]),eval(saisie[1])-1,eval(saisie[0]))
var annee = laDate.getYear()
if ((Math.abs(annee)+"").length < 4) annee = annee + 1900
return ((laDate.getDate() == eval(saisie[0])) && (laDate.getMonth() == eval(saisie[1])-1) && (annee

== eval(saisie[2])))
}
</script>

<form name="form1" onSubmit="isDateValid(form1.date.value)?alert('date correcte !'):alert('date

incorrecte !');";">
Date (au format jj/mm/aaaa)  : <INPUT type="text" name="date">
</form>

Commentaire de traversbourquin le 29/10/2004 21:23:32

Je suis désolé ! Le copier-coller m'a joué un mauvais tour !
Voici donc le code correct :

<script>
function testDateValide(saisie) {
if (saisie == "") return false;
saisie = (saisie).split("/");
if ((saisie.length != 3) || isNaN(parseInt(saisie[0])) || isNaN(parseInt(saisie[1])) || isNaN(parseInt(saisie[2]))) return false;
var laDate = new Date(eval(saisie[2]),eval(saisie[1])-1,eval(saisie[0]));
var annee = laDate.getYear();
if ((Math.abs(annee)+"").length < 4) annee = annee + 1900;
return ((laDate.getDate() == eval(saisie[0])) && (laDate.getMonth() == eval(saisie[1])-1) && (annee == eval(saisie[2])));
}
</script>

<form name="form1" onSubmit="testDateValide(form1.date.value)?alert('date correcte !'):alert('date incorrecte !');">
Date (au format jj/mm/aaaa)  : <INPUT type="text" name="date">
</form>

Commentaire de Magidev le 30/10/2004 16:12:39

LE BUT DE CE CODE :

Vérifier la date ET avertir l'utilisateur de son erreur, à savoir où il s'est trompé. Ton code je le connais et ca ne fait pas ca, ca dit seulement si c'est vrai ou non, mais le but du mien c'est de montrer ou l'utilisateur s'est trompé.

Donc avant de poster des Mieux Celui-ci ou Mieux celui-la se serait bien de lire les commentaires de codes, merci

Commentaire de traversbourquin le 30/10/2004 16:39:52

D'une part, je n'ai jamais écrit que ce code était mieux que le tien.
D'autre part, il est très facile à adapter pour situer l'erreur. Il suffit simple d'insérer alert('le_type_erreur') avant chacun des 'return false'

Très cordialement

Commentaire de traversbourquin le 30/10/2004 23:12:03

> Vérifier la date ET avertir l'utilisateur de son erreur
Très bien ! Voici donc le code ad hoc:


<script type="text/javascript">
var laDate,annee,Mois= new Array("de janvier","de février","de mars","d'avril","de mai","de juin","de juillet","d'août","de septembre","d'octobre","de novembre","de décembre"),msg="Veuillez introduire votre date au format JJ/MM/AAAA \n(par exemple : 12/02/1981)",msg1=".\nVeuillez indiquer un nombre compris entre 01 et ",msg2="Nouvelle saisie de la date";

function testDateValide(saisie) {
if (saisie == "") {alert(msg);return false;};
saisie = (saisie).split("/");
if ((saisie.length != 3) || isNaN(parseInt(saisie[0])) || isNaN(parseInt(saisie[1])) || isNaN(parseInt(saisie[2]))) {alert(msg);return false};
if ((saisie[0].length !=2) || (eval(saisie[0]) > 55) || (saisie[1].length !=2) || (saisie[2].length !=4)) {alert(msg);return false};
laDate = new Date(eval(saisie[2]),eval(saisie[1])-1,eval(saisie[0]));
annee = laDate.getYear();
if ((Math.abs(annee)+"").length < 4) annee = annee + 1900;
if ((laDate.getDate() != eval(saisie[0])) && (eval(saisie[1]<13))) {if (annee != eval(saisie[2])) {annee--};alert("Le mois "+ Mois[eval(saisie[1])-1] + " ne comporte que " + ((saisie[0]) - laDate.getDate()) + " jours en "+ annee + msg1 + (eval(saisie[0])-laDate.getDate()) + ".");return false};
if (laDate.getMonth() != eval(saisie[1]-1)) {alert("Il n'y a jamais eu " + eval(saisie[1]) + " mois dans cette année" + msg1 + "12.");return false};
return ((laDate.getDate() == eval(saisie[0])) && (laDate.getMonth() == eval(saisie[1])-1) && (annee == eval(saisie[2])));
}
</script>

<form name="form1" onSubmit="!testDateValide(form1.date.value)?alert(msg2):function(){}">
Date (au format jj/mm/aaaa) : <INPUT type="text" name="date">
</form>

Commentaire de ladry le 03/10/2005 21:28:18

Moi j'ai trouvé le code de Magidev niquel. Je l'ai posé dans une page, j'ai pas du tout galéré pour l'adapter.
Merci à toi.

Commentaire de luuuuudooooo le 12/10/2005 15:40:41

Moi j'ai trouvé aussi cette fonction supere simple et facile à adapter alors merci Magidev !!!

Commentaire de daymonns le 14/10/2006 13:50:43

Franchement très bien, c'est juste ce que je cherchais. Ni plus ni moins pas de fioritures :)

Commentaire de coej le 23/06/2007 14:54:03

Bonjour traversbourquin,

t'as juste oublié de verifier la date du jour. La personne qui n'est pas née est quant même validée.
Tres bien malgrés ça.

Commentaire de fenodmz le 01/08/2007 14:27:00

Salut !
Moi aussi j'ai une autre question : et si les dates étaient séparé en trois champ : comme ceci ?
je n'ai pas de script pour tester la validité de ce formulaire. et dans la fonction "validation" il n'y a pas de test de validité de la date.

<form action="fic.php" name="formulaire" onsubmit="return validation();" method="post">
<table>
<tr>
   <td width="200">Date de cr&eacute;ation entre le</td>
   <td><select name="jourcrea1" class="inputmenuderoul2"><?echo $szMenuJour?></select> / <select name="moiscrea1" class="inputmenuderoul2"><?echo $szMenuMois?></select> / <select name="anneecrea1" class="inputmenuderoul2"><?echo $szMenuAnnee?></select></td>
</tr>
<tr>
   <td width="300"><input type="reset" value="> Effacer <"> </td>
   <td colspan="2"><input type="submit" name="" value=">Rechercher<"></td>
</tr>
</table>
</form>

Besoin d'aide d'urgence !
Merci beaucoup !

Commentaire de cathy1 le 11/12/2009 09:26:11 10/10

Bonjour,

Je cherchais un moyen de valider une date pour mon formulaire et je suis tombée par hasard sur ce script. Je tenais à féliciter l'auteur car le script fonctionne à merveille et est très facile à adapter.
Alors encore bravo.!!

Commentaire de blacknaske le 23/03/2010 16:35:45

slt je cherche un script qui permet de voir si l'utilisateur est majeur ou non.pour savoir par la suite si (dans le cas d'une réservation d'un restaurant)l'internaute peux ou non consommer de l'alcool

le formulaire :
1page de réservation pour un repas une personne
Au final envoyer un formulaire correct:
a)première partie(coordonnées)
-nom,prénom
-date de naissance valide
-date de réservation futur + heure
b)choix des menus
3 types de menu
1)formule 1 12¤ plat et dessert ((désactive entrée)
2)formule 2 18¤ entrée +plat + dessert
3)A la carte(liste déroulante,entrée,menu,dessert)
c) choix des boissons
Boissons
soit sans alcool gratuit
vin du patron 5¤
selection vin 10¤

Apero et digestif 2,5¤
Si personne mineur,nepeut pas choisir les boisons ce sera sans alcool et pas de digestif appero
Si la datr de l'anniverssaire == date de réservation apero offert d'office
Si possible  calcule duprix en temps réel
#######################################################################
bouton envoyer (uniquement possible si tt est rempli correctement)


voila merci pour toute aide

Commentaire de dircom13 le 07/05/2011 23:01:55

Bonsoir,
Je prépare le site de notre société et dans un calculateur de pénalités pour non paiement à l'échéance (3 méthodes en France) et je veux utiliser le script de traversbourquin.

Question 1 :
- comment conserver le focus à l'input à l'origine de l'erreur ?
J'ai trouvé ceci :
        document.getElementById('date9').focus();
avec date9 l'id de l'input mais ne fonctionne pas

Question 2 :
- Aimant bien citer mes sources mais n'étant pas un "pro" que dois-je faire figurer et ou ?

A vous lire et merci

Commentaire de dircom13 le 12/05/2011 00:20:09

A propos de la question 1 dans le cas ou cela intéresserait un débutant comme moi je me réponds à moi même.

- dans le champs suivant avec :

onFocus="document.forms[FormActif].elements[InputActif].focus()"

on renvoi au champs précédent
- FormActif = valant nom du formulaire
- InputActif = valant id du champs précédent

S'il y a plus simple je suis preneur

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,293 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales