월 목록 항목을 선택한 후 연도 값과 월 값을 가져와서 해당 월 1일의 날짜 값과 월 말일의 날짜 값을 계산합니다.
올바른 코드는 다음과 같습니다.
< script Language="javascript">
function selDate(y, m)
{
//월 1일 문자열 출력
document.form1. startDT.value=y "-" m " -1"
//다음 달의 연도(y) 및 월 값(m) 계산
if(m==12)
{
y ;
m=1;
}
else
{
m
}
//다음 달 1일에 대한 날짜 값 생성
var dt=new Date(y, m-1, 1); //월 값 0--11
//일 차이 = 86400000, 다음 달 1일을 숫자 값으로 변환한 후 빼기 , 이전 달의 마지막 날의 날짜 값을 얻습니다
n -= 86400000
var dt1=new Date(n); //월말 날짜 문자열 출력
document.form1.stopDT.value=dt1.getYear() "-" (dt1.getMonth() 1) "-" dt1.getDate()
}
시작하면 "var dt =new Date(y, m-1, 1);"이 "var dt=new Date(y, m, 1);". 마지막 문장 "dt1.getMonth()"는 1을 더하지 않습니다. 상상할 수 있듯이 결과는 "2010-2-28"이지만 출력은 "2010-1-28"이고 "2010-1-31"의 출력은 "2010-0-31"입니다.
다음번에 한동안 JS를 사용하지 않을 때 이 글이 참고가 되었으면 좋겠습니다.