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 객체를 생성한다. 전달 할 수 있는 인자 및 범위는 다음과 같다.
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 기준으로 객체를 생성하고 싶다면 시간 데이터를 함께 전달해야 한다.
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 객체의 값을 호출할 때는 다음과 같이 사용할 수 있다.
Date 객체의 값을 변경할 때는 다음과 같다.
상대적인 날짜를 설정하고 싶을 경우(내일, 내년 등)나 addDays 등의 날짜 변경 함수를 구현하고 싶을 경우에는 위 예제와 같이 today등 이미 생성된 객체를 인자로 받아 재 설정해주면 된다.