01setMonth는 원본 객체를 바꿉니다
setMonth()는 새로운 Date를 따로 반환하는 방식이 아니라 기존 Date 객체의 월을 변경하고 새 타임스탬프를 반환합니다. 원본 기준일을 재사용할 코드라면 이 동작을 고려해야 합니다.
02월말의 일자 넘침도 보세요
일 인수를 생략하면 기존 일자를 사용합니다. 바꿀 달에 그 일자가 없을 때 다음 달로 넘어갈 수 있으므로 만기 계산의 월말 규칙과 같다고 가정하지 마세요.
로컬 날짜로 new Date(2026,0,31)을 만든 뒤 setMonth(1)을 적용하면 2월에 없는 31일이 넘쳐 2026년 3월 3일이 됩니다. setMonth는 로컬 시간으로 동작하므로 일광절약시간 경계를 지나면 타임스탬프 차이가 달력 일수×24시간과 다를 수 있습니다. 경과 시간 고정이 목적일 때와 달력 월 이동이 목적일 때를 구분합니다.
03기간 규칙을 먼저 명시하세요
같은 날짜 유지, 말일 고정, 넘침 허용 중 필요한 규칙을 정하고 경계 표본을 확인합니다. 이 글은 기능 개발 완료 보고가 아닌 동작 설명입니다. MDN 확인일은 2026-11-04입니다.
Official source (2026-11-04).