begin process at 2010 03 20 08:51:31
  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 :17 699

Auteur : Magidev

Ecrire un message privé
Site perso
Commentaire sur cette source (11)
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 CHRONOMÈTRE AMÉLIORÉ par Kolosta
Source avec Zip SLEEP() SANS BOUCLE D'ATTENTE CONSOMMATRICE par Phildepantin
Source avec Zip AFFICHAGE DE L'HEURE ET DU FUSEAU HORAIRE (TIMEZONE) SUR LA ... par navylav2
Source avec Zip Source avec une capture HORLOGE TRIPLE AFFICHAGE AU FORMAT AM/PM/24H/DST par sofiane1234
Source avec Zip Source avec une capture HORLOGE NUMÉRIQUE EN JAVASCRIPT, COMPATIBLE IE ET FF par bad_dark_spirit

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.!!

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,499 sec (4)

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