javascript 날짜 비교
기본적으로 구현하고자 하는 기능은 사용자가 선택한 날짜 및 시간을 선택하고
문자를 보내고자 할때 선택한 날짜 및 시간이 과거일때 날짜 및 시간이 잘못 선
택이 되었다고 경고창을 띄우기 위함이다.
구현된 소스는 아래와 같다.
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 날짜 비교|작성자 이루