JAVASCRIPT共通関数--日付の妥当性チェック

日付の妥当性チェック
DateChk,LastDayChk,YearChkと3つのパートに分かれます。
あまりJavaScript側でチェックする事はありませんが、どうしてもという場合はどうぞ。

/**********************************************************************************************/
//日付の妥当性チェック(YYYYMMDD形式でい引数は渡す事。)
function DateChk(in_data){

  var chkData = in_data;

  //8桁以外はエラー
  if (chkData.length != 8)
     {return false;}

  //小数点が入っていたらエラー
  if (chkData.indexOf(".") != -1)
     {return false;}

  //マイナスが入っていたらエラー
  if (chkData.indexOf("-") != -1)
     {return false;}

  //数値チェック
  if (isNaN(chkData) == true)
     {return false;}

  in_Year = eval(chkData.substring(0,4));
  in_Month = eval(chkData.substring(4,6));
  in_Day = eval(chkData.substring(6,8));

  if ((in_Month>12) || (in_Day >31))
     {return false;}

  //閏年
  if ((in_Month == 2) && YearChk(in_Year))
     {in_Month=13;}

  //末日チェック
  if (LastDayChk(in_Month,in_Day))
     {return true;}
  else
     {return false;}

}

//末日チェック
function LastDayChk(in_Month,in_Day){
  lastDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31,29);
  if (lastDay[in_Month-1] >= in_Day)
     {return true;}
   else
     {return false;}
}

//年チェック
function YearChk(in_Year){
  if ((in_Year % 4) == 0 && ((in_Year % 100) != 0 || (in_Year % 400)))
     {return true;}
  return false;
} 

/**********************************************************************************************/

转载于:https://www.cnblogs.com/aggavara/archive/2012/10/09/2716236.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值