Bonjour,
J'ai une fonction de controle de date qui ne fonctionne pas correctement,
pour le '29/12/2007' elle me repond true, mais pour le '30/12/2007' elle me répond false, j'y comprend plus rien...


voici le code qui bug :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
function controleDate(elemDate) {
	var erreurDate = false;
	if(elemDate.value!="jj/mm/aaaa") {
		//Découpage de la chaine contenant la date
		var reg = new RegExp("[/]+", "g");
		var tbDate = elemDate.value.split(reg);
		if(tbDate.length==3) {
			//- Vérification que la date est correcte
			if(isNaN(tbDate[0]) || isNaN(tbDate[1]) || isNaN(tbDate[2]) || trim(tbDate[0])=="" || trim(tbDate[1])=="" || trim(tbDate[2])=="") {
				erreurDate = true;
			}else{
				jour = parseInt(tbDate[0]);
				mois = parseInt(tbDate[1]);
				annee = parseInt(tbDate[2]);
				//Controle du mois
				if(mois>=1 && mois<=12) {
					//Nombre de jours du mois
					nbJoursMois = getNbJoursMois(mois,annee);
					//Controle sur le jour
					if(jour>=1 && jour<=nbJoursMois) {
						//Si la date est correcte on la met au bon format
						var dtDate = new Date();
						dtDate.setDate(jour);
						dtDate.setMonth(mois-1);
						dtDate.setYear(annee);
						elemDate.value = dtDate.getDate()+"/"+(dtDate.getMonth() + 1)+"/"+dtDate.getYear();
					}else{
						erreurDate = true;
					}
				}else{
					erreurDate = true;
				}
			}
		}else{
			erreurDate = true;
		}
	}
	return elemDate;
}