vérification de date sous autre forme
Bonjour à tous,
J'ai repris un script de la FAQ, le petit problème c'est que je pense l'avoir mal adapté ! Ma date s'organise de cette façon : YYYY-MM-DD.
Le problème c'est qu'à chaque fois qu'il manque soit le mois ou l'année, le script m'indique que c'est "The days is not correct" !
Code:
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 41 42 43 44 45
|
function check() {
var amin=2007; // min
var amax=2020; // max
var separateur="-";
var d=document.getElementById('availid').value;
var a=(d.substring(0,4));
var m=(d.substring(5,7));
var j=(d.substring(8));
var ok=1;
if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
alert("The year is not correct!");
ok=0;
return false;
}
if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
alert("The month is not correct!");
ok=0;
return false;
}
if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
alert("The day is not correct!");
ok=0;
return false;
}
if ( ((d.substring(4,5)!=separateur)||(d.substring(7,8)!=separateur))
&& (ok==1) ) {
alert("The separator must be "+separateur);
ok=0;
return false;
}
if (ok==1) {
var d2=new Date(a,m-1,j);
j2=d2.getDate();
m2=d2.getMonth()+1;
a2=d2.getYear();
if (a2<=100) {a2=1900+a2}
if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
alert("The date "+d+" doesn't exist!");
ok=0;
}
}
return true;
} |