본문 바로가기

Story/Javascript

날짜 유효성 검사

반응형


 /*****
  * 날짜 유효성 검사
  * return : boolean
  *****/
 function check_date(year,month,day){
  if(
   year.length == 4 &&
   month.length > 0 &&
   month.length < 3 &&
   day.length > 0 &&
   day.length < 3
  ){
   month = month-1; // month - 1 한 의미에 주의
   if(month.length == 1) month = '0' + month.toString();
   if(day.length == 1) day = '0' + day.toString();

    vDate = new Date(year,month,day);   
    //vDate = new Date();
   //vDate.setFullYear(year);
   //if(month == "01") vDate.setDate(day); // 월보다 일을 먼저 한 의미를 잊지말것 (ex 2월을 지정하면 30일로 먼저 셋팅이되서 바로 오류가된다)
   //vDate.setMonth(month);
   if(month != "01") vDate.setDate(day);

   if(
    vDate.getFullYear() != year ||
    vDate.getMonth()    != month ||
    vDate.getDate()     != day
   ){
    return false;
   }else{
    return true;
   }
  }else{
   return false;
  }
 }
2월일때는 날짜를 먼저 그 외에는 달을 먼저해야 하는듯 싶다.
예를 들어서 3월 31일의 경우 일을 먼저 하면 날짜의 결과가 3월 2일로 나온다.
원인은 좀더 공부해 봐야겠다..

===============================================
vDate.setFullYear(year); 와 같은 형식으로 날짜를 지정해줘도 기본은 개인 PC 의 시스템 날짜를 따른다... 주의하자

반응형