2000年4月30日星期日

JSで日付の判定

// 日付チェック [YYYYMMDD] OR [YYYY/MM/DD]
function isDate(obj)
{
 //未入力の場合はチェックなし
 if(isNull(obj))
 {
  return true;
 }

 var flag = true;
 var years;
 var months;
 var days;

 //8桁と10桁のみチェック
 if(obj.length == 8)
 {
  years = obj.substring(0,4);
  months = obj.substring(4,6);
  days = obj.substring(6,8);
 }
 else if(obj.length == 10)
 {
  years = obj.substring(0,4);
  months = obj.substring(5,7);
  days = obj.substring(8,10);
 }
 else
 {
  return false;
 }

 years = Number(years);
 months = Number(months) - 1;
 days = Number(days);

 //年の値が小さすぎます
 if (years < 1900) 
 {
  flag = false;
 }

 var dates = new Date(years,months,days);

 if (dates.getYear() < 1900) 
 {
  if (years != dates.getYear() + 1900) 
  {
    flag = false;
   }
 } 
 else 
 {
  if (years != dates.getYear()) 
  {
   flag = false;
  }
 }

 if (months != dates.getMonth()) 
 {
  flag = false;
 }

 if (days != dates.getDate()) 
 {
  flag = false;
 }

 return flag;
}

没有评论:

发表评论