日付を検証する簡単な関数を書いています。問題はスイッチの演算子が何も一致しないと思われ、maxDay
の値が0のままであることです。if
ステートメントを使用しても問題はありません。switchコマンドによる日付検証は機能しません
function validateDateFormat(day,month,year) {
alert(month); // this was to ensure month was correct and it is!!
var maxDay = 0;
switch(month)
{
case 01 :
case 03 :
case 05 :
case 07 :
case 08 :
case 10 :
case 12 : maxDay = 31; break;
case 04 :
case 06 :
case 09 :
case 11 : maxDay = 30; break;
case 02 : if(year%4 == 0) maxDay = 29;
else maxDay = 28;
break;
//default : return " Invalid month -"; break;
}
alert(maxDay);
if(day > maxDay) {return " Invalid day -";}
return "";
}
実際に4年ごとに閏年が発生することはありません。あなたのアプリケーションと日付の寿命が重要ではないかもしれないことを検証するでしょう。ちょうどあなたが400年のサイクルで働くことを知りたいと思っていたと思ったので、うるう年の間に8年の間隙があることがあります。 [なぜうるう年が使用されるのか](http://www.timeanddate.com/date/leapyear.html)を参照してください。 – Jonathan
Firebugではうまく動作しています。 –