카테고리 없음

JavaScript Date object method

lshjju 2026. 6. 1. 11:27

 

자바스크립트에서 날짜와 시간을 다루는 Date 객체는 웹 애플리케이션에서 현재 시간을 표시하거나, 디데이(D-Day) 계산, 타임스탬프 발행 등 다양한 곳에 활용됩니다.

Date 객체는 Math 객체와 달리 new Date()를 통해 인스턴스를 생성해서 사용해야 합니다.

실무에서 가장 많이 쓰이는 중요 메소드들을 4가지 카테고리로 나누어 정리해 드리겠습니다.

1. 날짜 정보 가져오기 (Get 메소드)

생성된 Date 객체로부터 연, 월, 일, 요일 등의 정보를 추출하는 메소드입니다.

  • getFullYear(): 4자리 연도를 반환합니다. (예: 2026)
  • getMonth(): 을 반환합니다.
    • 주의: 컴퓨터는 숫자를 0부터 세기 때문에 $0$(1월) ~ $11$(12월)을 반환합니다. 실제 월을 쓰려면 반드시 + 1을 해야 합니다.
  • getDate(): 일(날짜)을 반환합니다. ($1 \sim 31$)
  • getDay(): 요일을 숫자로 반환합니다.
    • $0$(일요일)부터 $6$(토요일)까지의 숫자를 반환하므로, 보통 배열과 함께 매핑하여 사용합니다.
  • getHours() / getMinutes() / getSeconds(): 현재의 시, 분, 초를 반환합니다.
const now = new Date(); // 2026년 6월 1일 월요일 가정

console.log(now.getFullYear()); // 2026
console.log(now.getMonth() + 1); // 6 (getMonth()가 5를 반환하므로 +1 필요)
console.log(now.getDate());     // 1
console.log(now.getDay());      // 1 (월요일)

2. 날짜 정보 설정하기 (Set 메소드)

특정 날짜나 시간으로 객체를 수정할 때 사용합니다.

  • setFullYear(year): 연도를 설정합니다.
  • setMonth(month): 월을 설정합니다. (입력 시에도 $0 \sim 11$ 기준을 따릅니다.)
  • setDate(date): 일을 설정합니다.
    • 꿀팁: setDate(0)을 입력하면 지난달의 마지막 날로 설정되어, 해당 달이 며칠까지 있는지 계산할 때 아주 유용합니다.
const date = new Date();
date.setFullYear(2027);
date.setMonth(11); // 12월로 설정
date.setDate(25);  // 25일로 설정

console.log(date); // 2027년 12월 25일 크리스마스 날짜가 출력됨

3. 밀리초(Timestamp) 기반 메소드

1970년 1월 1일 00:00:00(UTC)을 기준으로 현재까지 흘러간 시간을 밀리초($1/1000$초) 단위로 나타낸 값을 타임스탬프라고 합니다.

  • getTime(): Date 객체의 타임스탬프(밀리초)를 반환합니다.
  • Date.now(): 인스턴스를 만들지 않고 현재 시점의 타임스탬프를 숫자로 바로 반환합니다. (성능 측정이나 고유 ID 생성 시 유용)

💡 실무 활용: 디데이(D-Day) 기간 계산하기

두 날짜의 타임스탬프 차이를 계산하면 며칠이 지났는지 쉽게 알 수 있습니다.

const today = new Date();
const targetDay = new Date('2026-12-25');

const difference = targetDay.getTime() - today.getTime();
// 밀리초를 일(Day) 단위로 환산: 1일 = 24시간 * 60분 * 60초 * 1000밀리초
const dDay = Math.ceil(difference / (1000 * 60 * 60 * 24));

console.log(`크리스마스까지 ${dDay}일 남았습니다.`);

4. 날짜를 문자열로 변환하는 메소드

출력 형식을 깔끔하게 가공하거나 특정 국가의 표기법으로 바꿀 때 사용합니다.

  • toDateString(): 사람이 읽기 쉬운 형태의 날짜 문자열을 반환합니다. (시간 제외)
  • toLocaleDateString(): 현재 사용자의 국가 환경(Locale)에 맞는 날짜 형식을 반환합니다.
  • toISOString(): ISO 8601 형식의 문자열을 반환하여, 서버와 날짜 데이터를 주고받을 때 표준으로 사용됩니다.
const now = new Date();

console.log(now.toDateString());       // 예: "Mon Jun 01 2026"
console.log(now.toLocaleDateString()); // 한국 기준: "2026. 6. 1."
console.log(now.toISOString());        // 예: "2026-06-01T02:25:45.000Z"

📋 Date 객체 중요 메소드 요약표

메소드 기능 예시 결과 (2026-06-01 기준)
getFullYear() 4자리 연도 가져오기 2026
getMonth() 월 가져오기 ($0 \sim 11$) 5 (6월을 의미)
getDate() 일 가져오기 ($1 \sim 31$) 1
getDay() 요일 가져오기 ($0 \sim 6$) 1 (월요일)
getTime() 1970년 이후 흘러간 밀리초 구하기 1777598745000 (예시)
toLocaleDateString() 현지 날짜 포맷으로 변환 "2026. 6. 1."

학습 정리

  • **getMonth()**를 사용할 때는 반드시 결과를 사람의 눈에 맞게 + 1 해주어야 한다는 점을 잊지 마세요.
  • 자바스크립트 순수 Date 객체는 포맷팅(YYYY-MM-DD 형식 등) 기능이 조금 아쉬워서, 실무에서 복잡한 날짜 계산을 할 때는 Day.jsdate-fns 같은 외부 라이브러리를 함께 쓰는 편입니다.

 

시간을 자유자재로 다루는 Date 객체의 핵심 메소드들을 모두 정복하셨습니다!