728x90
반응형

기본적으로 구현하고자 하는 기능은 사용자가 선택한 날짜 및 시간을 선택하고

문자를 보내고자 할때 선택한 날짜 및 시간이 과거일때 날짜 및 시간이 잘못 선

택이 되었다고 경고창을 띄우기 위함이다.

 

구현된 소스는 아래와 같다.

 

  var obj = document.getElementById('reserve'); //예약발송 여부를 선택하는 체크 박스의 object
  
  if(obj.checked)                                            //예약발송 여부를 선택하는 체크 박스가

                                                                   //checked 일 경우
  {
   var nowDate = new Date();                          //현재 날짜 및 시간
   var year = nowDate.getYear();                     //현재 날짜의 년도
   var month = nowDate.getMonth() + 1;           //현재 날짜의 월
   var date = nowDate.getDate();                     //현재 날짜의 일
   var hour = nowDate.getHours();                   //현재 시간의 시
   var minute = nowDate.getMinutes();             //현재 시간의 분
   

   if((year + "").length < 4)                             //FireFox일 경우 year에 1900을 더해준다.

   {

    year = 1900 + year;
   }
   if((month + "").length < 2)                           //현재 날짜의 월이 1~9월일 경우 십의 자리에

                                                                  //0을 더해준다. (예 : 01월, 02월 ...) 
   {
    month = "0" + month;
   }  
   if((date + "").length < 2)                             //월과 동일
   {
    date = "0" + date;
   }
   if((hour + "").length < 2)                            //월과 동일
   {
    hour = "0" + hour;
   }
   if((hour + "").length < 2)                            //월과 동일
   {
    hour = "0" + hour;
   }

   var now = parseInt(year + "" + month + "" + date + "" + hour + "" + minute);          

                                                                                                      //yyyymmddhhmi 형식의

                                                                                                      //현재 날짜 및 시간을

                                                                                                      //int형으로 변환

 

   var reserveDate = document.getElementById('reserveDate').value;       //사용자에 의해 선택된

                                                                                                      //예약 날짜

                                                                                                      //(yyyy-mm-dd) 형식임


   reserveDate = reserveDate.replace(/-/g, "");                                    //yyyy-mm-dd 형식을

                                                                                                      //yyyymmdd 형식으로

                                                                                                      //변경


   var reserveHour = document.getElementById('reserveHour').value;        //사용자에 의해 선택된

                                                                                                       //예약 시간의 시

                                                                                                       //(01, 02, ... 59 형태임)


   var reserveMinute = document.getElementById('reserveMinute').value; //사용자에 의해 선택된

                                                                                                      //예약 시간의 분

                                                                                                      //(10, 20, ... 50 형태임)

 

   var reserve = parseInt(reserveDate+reserveHour+reserveMinute);        //yyyymmddhhmi 형식의

                                                                                                     //예약 날짜 및 시간을

                                                                                                     //int형으로 변환

 

   if(reserve <= now)                                                      //예약 설정 된 날짜 및 시간이 

                                                                                   //현재 날짜 및 시간보다 

                                                                                   //작거나 같으면 경고창을 띄운다.
   {
    alert("예약발송이 가능한 날짜 또는 시간이 아닙니다.");

    return;
   }
  }

 

자. 이제는 본인의 개발 상황에 맞게 수정해서 쓰면 됩니다.

[출처] javascript 날짜 비교|작성자 이루

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,