JavaScript의 Date 객체는 언어에 기본으로 내장된 데이터 타입으로, new Date()를 통해 생성할 수 있습니다. Date 객체를 한 번 생성하면 다양한 메서드를 이용해 연·월·일·시·분·초·밀리초 값을 지역 시간(local time) 또는 UTC(협정 세계시, GMT) 기준으로 가져오거나 설정할 수 있습니다.
이 글에서는 그중에서도 getUTCMonth() 메서드의 동작 방식과 실전 예제를 자세히 살펴보겠습니다.
getUTCMonth()란 무엇인가?
getUTCMonth()는 Date 객체의 메서드로, 주어진 날짜의 월을 UTC(세계 표준시) 기준으로 반환합니다. 반환값은 0부터 시작하며, 0은 1월, 1은 2월을 나타내는 식입니다. 따라서 실제 월 숫자가 필요하다면 반환값에 1을 더해야 합니다.
- 반환 범위: 0 ~ 11 (0 = 1월, 11 = 12월)
- 기준 시간대: UTC (지역 시간이 아님)
- 매개변수: 없음
문법(Syntax)
사용 문법은 다음과 같습니다.
dateObj.getUTCMonth();
인자를 전달하지 않으며, 호출 즉시 해당 날짜의 월 인덱스를 정수로 돌려줍니다.
예제 1: 특정 날짜의 월 구하기
아래 예제는 1989년 9월 26일로 생성한 Date 객체에서 월을 조회합니다. 9월은 인덱스 8에 해당하므로 8이 출력됩니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var dateObj = new Date('September 26, 1989 12:4:25:96');
document.write(dateObj.getUTCMonth());
</script>
</body>
</html>출력 결과
8
예제 2: 월 정보 없이 Date 객체 생성 시
Date 객체를 생성할 때 월을 지정하지 않으면, 이 메서드는 UTC 기준으로 0(1월)을 반환합니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var dateObj = new Date('1989 12:4:25:96');
document.write(dateObj.getUTCMonth());
</script>
</body>
</html>출력 결과
0
예제 3: 현재 월 구하기
같은 원리로, Date 객체 생성 시 아무 값도 전달하지 않으면 현재 시각 기준으로 객체가 만들어집니다. 이 경우 getUTCMonth()는 현재 연도의 현재 월을 UTC 기준으로 반환합니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var dateObj = new Date();
document.write("Month of the year: " + dateObj.getUTCMonth());
</script>
</body>
</html>출력 결과
Month of the year: 9
활용 팁
반환값이 0부터 시작한다는 점 때문에 초보자가 실수하기 쉽습니다. 월 이름을 화면에 표시하고 싶다면 배열과 조합하면 편리합니다.
var months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
var dateObj = new Date();
document.write(months[dateObj.getUTCMonth()]); // 예: September또한 지역 시간 기준으로 월이 필요하다면 getMonth()를, 월 값을 설정하려면 setUTCMonth() 또는 setMonth()를 사용하면 됩니다. 서버 시간과 사용자 시간대가 다른 환경에서는 UTC 기준 메서드를 사용하는 것이 일관성 있는 결과를 보장합니다.