날짜 입력 체크 및 시작 날짜와 종료 날짜 비교 > 소스코드

본문 바로가기
사이트 내 전체검색


회원로그인

소스코드

javascript | 날짜 입력 체크 및 시작 날짜와 종료 날짜 비교

페이지 정보

작성자 100K5 작성일12-04-01 10:05 조회59,186회 댓글0건

본문

<script type="text/javascript">
<!--
 
/*
* 분리자를 이용하여 날짜의 유효성 체크
* 예) 2000.03.24 -> '.'을 이용하여 체크한다.
*@param inputDate 체크할 날짜
*@param point 년,월,일 분리자
*/

function dateCheck(inputDate, point){
 var dateElement = new Array(3);
 
 if(point != ""){
  dateElement = inputDate.split(point);
  if(inputDate.length != 10 || dateElement.length != 3){
   return false;
  }
 }else{
  dateElement[0] = inputDate.substring(0,4);
  dateElement[1] = inputDate.substring(4,6);
  dateElement[2] = inputDate.substring(6,9);
 }

 //년도 검사
 if( !( 1800 <= dateElement[0] && dateElement[0] <= 4000 ) ) {
  return false;
 }
 
 //달 검사
 if( !( 0 < dateElement[1] && dateElement[1] < 13 ) ) {
  return false;
 }

 // 해당 년도 월의 마지막 날
 var tempDate = new Date(dateElement[0], dateElement[1], 0);
 var endDay = tempDate.getDate();

 //일 검사
 if( !( 0 < dateElement[2] && dateElement[2] <= endDay ) ) {
  return false;
 }

 return true;
}


/*
* 날짜 비교
* 종료일이 시작일 보다 작을때 false를
* 정상 기간일 경우 true를 리턴한다.
* @param startDate 시작일
* @param endDate 종료일
* @param point 날짜 구분자
*/

function dateCompare(startDate, endDate, point) {

 //정상 날짜인지 체크한다.
 var startDateChk = dateCheck(startDate, point);
 
 if(!startDateChk) {
  return false;
 }
 
 var endDateChk = dateCheck(endDate, point, "end");
 
 if(!endDateChk){
  return false;
 }
         
 //년 월일로 분리 한다.
 var start_Date = new Array(3);
 var end_Date = new Array(3);
 
 if(point != ""){
  start_Date = startDate.split(point);
  end_Date = endDate.split(point);
  if(start_Date.length != 3 && end_Date.length != 3){
   return false;
  }
 }else{
  start_Date[0] = startDate.substring(0,4);
  start_Date[1] = startDate.substring(4,6);
  start_Date[2] = startDate.substring(6,9);
  end_Date[0] = endDate.substring(0,4);
  end_Date[1] = endDate.substring(4,6);
  end_Date[2] = endDate.substring(6,9);
 }

 //Date 객체를 생성한다.
 var sDate = new Date(start_Date[0], start_Date[1], start_Date[2]);
 var eDate = new Date(end_Date[0], end_Date[1], end_Date[2]);
 if(sDate > eDate){
  return false;
 }
 
 return true;
//-->
</script>

댓글목록

등록된 댓글이 없습니다.


사이트소개 개인정보취급방침 서비스이용약관 Copyright © kkujunhee.net All rights reserved.
상단으로

개인정보관리책임자 : 관리자

모바일 버전으로 보기