My Boundary As Much As I Experienced

Date 객체로 특정 시간 설정하기 본문

FrontEnd/Javascript(Vanilla)

Date 객체로 특정 시간 설정하기

Bumang 2024. 6. 15. 22:37

Date 객체는 여러 가지 방법으로 생성할 수 있으며 활용 방법을 알아두면 두고두고 쓸 때가 많다.

대충 필요할 때 구글링해서 해결하고 있었는데 한 번 정리해서 장기기억으로 남겨두려고 한다.

몰랐던 사용법도 꽤 되는데.. 재밌네

 

 

- 현재 날짜와 시간으로 생성:

현재의 날짜와 시간을 가진 Date 객체를 생성.

let now = new Date();

 

 

 

 

- 특정 날짜와 시간으로 생성:

지정된 날짜와 시간 문자열을 기반으로 Date 객체를 생성.

let specificDate = new Date('2024-06-15T12:00:00');

 

 

 

- 연도, 월, 일, 시, 분, 초, 밀리초로 생성:

월은 0부터 시작하므로 5는 6월을 의미한다.

let detailedDate = new Date(2024, 5, 15, 12, 0, 0, 0);

 

 

- 연도, 월, 일, 시, 분, 초, 밀리초 각각 설정:

now.setFullYear(2025); // 연도 설정
now.setMonth(11); // 월 설정 (12월)
now.setDate(25); // 일 설정
now.setHours(10); // 시 설정
now.setMinutes(30); // 분 설정
now.setSeconds(45); // 초 설정
now.setMilliseconds(500); // 밀리초 설정

 

 

- 특정 날짜에 몇 시간 혹은 몇 일 더하거나 빼기:

let date = new Date();

// setDate에 'getDate한 값 + 365'를 더하면 정확히 1년 후.
date.setDate(date.getDate() + 365); 

// setFullYear에 'getFullYear - 1'을 더하여 다시 -1년.
date.setFullYear(date.getFullYear() - 1);

 

 

- 특정 날짜에 몇 시간 혹은 몇 일 더하거나 빼기:

let timestamp = date.getTime(); // 1970년 1월 1일 00:00:00 UTC 이후의 밀리초

 

 

- 타임스탬프 가져오기:

let timestamp = date.getTime(); // 1970년 1월 1일 00:00:00 UTC 이후의 밀리초

 

 

- ISO 문자열로 변환:

let isoString = date.toISOString(); // ISO 8601 형식의 문자열로 변환

/*
ISO 문자열은 날짜와 시간을 표현하기 위한 국제 표준 형식인 ISO 8601을 따르는 문자열.
전세계가 각기 통일된 날짜와 시간 표기를 하기 위한 표준어라고 보면 된다.

YYYY-MM-DDTHH:MM:SS.sssZ

YYYY: 4자리 연도 (예: 2024)
MM: 2자리 월 (01에서 12까지)
DD: 2자리 일 (01에서 31까지)
T: 날짜와 시간 구분 문자
HH: 2자리 시간 (00에서 23까지, 24시간 형식)
MM: 2자리 분 (00에서 59까지)
SS: 2자리 초 (00에서 59까지)
sss: 3자리 밀리초 (000에서 999까지)
Z: 시간대를 나타내는 문자. Z는 UTC를 나타냄. 시간대 오프셋을 나타내는 +HH:MM 또는 -HH:MM 형식으로도 사용 가능.
*/

 

 

- 두 날짜 비교:

날짜 객체 끼리는 연산자로 비교할 수 있다..

let date1 = new Date('2024-06-15');
let date2 = new Date('2025-06-15');
if (date1 < date2) {
    console.log('date1이 date2보다 이전입니다.');
}

 

 

- 날짜 차이 계산

let differenceInTime = date2 - date1; // 밀리초 단위의 차이
let differenceInDays = differenceInTime / (1000 * 3600 * 24); // 일 단위로 변환