Date() 객체

양은지·2023년 6월 20일
0

JavaScript

목록 보기
29/31

Date()

Date의 Timezone

  • Local time: 현재 실행되고 있는 환경을 기반으로 한 시간대
  • UTC(Coordinated Universal Time): GMT를 기반으로 하는 협정 세계시 시간대
    JS Date 객체는 Default로 Local time을 사용한다.

Date 객체 생성

const today = new Date();
// Tue Jun 20 2023 10:17:29 GMT+0900 (Korean Standard Time) {}

new Date()로 새로운 Date 객체를 생성할 수 있으며, 생성된 Date 객체는 Local Time 기준으로 생성된 날짜, 시간 데이터를 가지고 있다.

const dDay = new Date(2023, 5, 22);
// Tue Jun 22 2023 00:00:00 GMT+0900 (Korean Standard Time) {}

Date 객체 생성 시 인자로 날짜 및 시간 데이터를 전달하면 특정 날짜/시간 데이터를 가진 Date 객체를 생성한다. 전달 할 수 있는 인자 및 범위는 다음과 같다.

  • 연도: 4 자리 연도.
  • 월: (0 ~ 11). 월은 zero-index로 0 = 1월이며, 기본값은 0.
  • 일: (1 ~ 31). 생략 시 기본값은 1.
  • 시간: (0 ~ 23). 생략 시 기본값은 0.
  • 분: (0 ~ 59). 생략 시 기본값은 0.
  • 초: (0 ~ 59). 생략 시 기본값은 0.
  • 밀리 초: (0 ~ 999). 생략 시 기본값은 0.
new Date(Date.UTC(2023, 6, 22);

인수를 사용해 Date 객체를 만드는 경우 UTC 기준의 날짜, 시간 데이터를 가진 객체를 생성할 수 있다.

new Date('2023-06-22'); // UTC 기준
new Date(2023, 5, 22); // KST 기준
new Date('2023-06-22T00:00:01.000'); // KST 기준
new Date('2023-06-22T00:00'); // KST 기준

ISO-8601 확장 포맷 문자 형식을 사용한다면 문자값을 인자로 사용할 수도 있다. 다만 주의해야 할 것은 날짜 데이터만 전달할 경우에는 UTC 기준의 객체가 생성된다는 것이다.
만약 문자값을 인자로 전달하지만 Local Time 기준으로 객체를 생성하고 싶다면 시간 데이터를 함께 전달해야 한다.

Date 객체 값 호출/변경

const today = new Date();
// Tue Jun 20 2023 10:17:29 GMT+0900 (Korean Standard Time) {}

console.log(today.getFullYear()); // 2023
console.log(today.getDate()); // 20

const tommorow = new Date(today);

tomorrow.setDate(today.getDate() + 1);
console.log(tomorrow);
// Tue Jun 21 2023 10:17:29 GMT+0900 (Korean Standard Time) {}

Date 객체의 값을 호출할 때는 다음과 같이 사용할 수 있다.

  • getFullYear: 연도를 반환
  • getMonth:(0 ~ 11) 월을 반환(0은 1월, 11은 12월)
  • getDate: (1 ~ 31) 날짜를 반환
  • getHours: (0 ~ 23) 시간을 반환
  • getMinutes: (0 ~ 59) 분을 반환
  • getSeconds: (0 ~ 59) 초를 반환
  • getMilliseconds: (0 ~ 999) 밀리 초를 반환

Date 객체의 값을 변경할 때는 다음과 같다.

  • setFullYear: 연도를 설정
  • setMonth:(0 ~ 11) 월을 설정(0은 1월, 11은 12월)
  • setDate: (0 ~ 31) 날짜 [0을 설정한 경우 이전 달의 가장 마지막 날을 설정]를 설정
  • setHours: (0 ~ 23) 시간을 설정
  • setMinutes: (0 ~ 59) 분을 설정
  • setSeconds: (0 ~ 59) 초를 설정
  • setMilliseconds: (0 ~ 999) 밀리 초를 설정

상대적인 날짜를 설정하고 싶을 경우(내일, 내년 등)나 addDays 등의 날짜 변경 함수를 구현하고 싶을 경우에는 위 예제와 같이 today등 이미 생성된 객체를 인자로 받아 재 설정해주면 된다.

Reference

Javascript - Date 날짜 계산 [더하기, 빼기, 설정]

profile
eunji yang

0개의 댓글