
자바스크립트에서 Date 객체를 사용해서 시간과 날짜 정보를 얻어올 수 있다.
Date객체는 1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차이를 밀리초로 나타내는 정수 값을 담는다.
자바스크립트에서 월(month)을 나타낼 때는 1월이 0으로 표현되고, 12월이 11로 표현된다.
Date객체는 생성자 함수인데, 이는 날짜와 시간을 가지는 인스턴스를 생성한다.
생성된 인스턴스는 현재 날짜와 시간을 나타내는 값을 가진다.
만약 현재 날짜와 시간이 아닌 다른 날짜와 시간을 가지고 싶은 경우 Date생성자 함수에 날짜와 시간 정보를 인수로 지정해야한다.
const now = new Date();
console.log(now);

인수를 전달하지 않고 사용하는 경우 현재 날짜와 시간을 가지는 인스턴스를 반환한다.
let customDate = new Date(2025, 0, 16, 16, 30, 0);
console.log(customDate);

let specificDate = new Date('2025-01-17');
console.log(specificDate);

let timestampDate = new Date(1609459200000);
console.log(timestampDate);

인수로 숫자타입의 밀리초를 전달하면 1970년 1월 1일 00:00(UTC)을 기점으로 인수로 전달된 밀리초만큼 경과한 날짜와 시간을 가지는 인스턴스를 반환한다.
- 86400000ms 는 하루를 의미한다.
- 1s = 1,000ms
- 1m = 60s * 1,000ms = 60,000ms
- 1h = 60m * 60,000ms = 3,600,000ms
- 1d = 24h * 3,600,000ms = 86,400,000ms
const dateFromString = new Date('2025-01-16T15:30:00');
console.log(dateFromString);

ISO 8601은 날짜와 시간을 표현하는 국제 표준으로 ISO 8601 형식을 사용한다.
let date = new Date();
console.log(date.getFullYear());

getFullYear()는 4자리 연도를 반환한다.
인자를 따로 전달해주지 않았기 때문에 현재 연도를 반환한다.
let date = new Date();
console.log(date.getMonth());

0~11까지의 월을 반환한다.
현재는 25년 1월이기 때문에 0이 반환되었다.
let date = new Date();
console.log(date.getDate());

1~31까지의 날짜(일)을 반환한다.
let date = new Date();
console.log(date.getDay());

0부터 6까지 요일을 반환한다.
현재 글을 쓰는 시점은 목요일이므로 4를 반환했다.
0 : 일요일
1 : 월요일
2 : 화요일
3 : 수요일
4 : 목요일
5 : 금요일
6 : 토요일
let date = new Date();
console.log(date.getHours());

0 부터 23까지의 시간을 반환한다.
let date = new Date();
console.log(date.getMinutes());

0부터 59까지 분을 반환한다.
let date = new Date();
console.log(date.getSeconds());

0부터 59까지 초를 반환한다.
let date = new Date();
console.log(date.getMilliseconds());

0부터 999까지 밀리초(ms)를 반환한다.
let date = new Date();
console.log(date.getTime());

1970년 1월 1일부터 현재까지의 밀리초를 반환한다.
const date = new Date();
date.setFullYear(2026);
date.setMonth(5);
date.setDate(20);
console.log(date);

setFullYear(), setMonth(), setDate() 등을 사용하여 날짜를 변경할 수 있다.
let now = new Date();
console.log(now.toLocaleString());
console.log(now.toLocaleDateString());
console.log(now.toLocaleTimeString());

toLocaleString()을 사용해서 날짜를 보기 좋게 포맷팅할 수도 있다.
Date 객체는 자주 쓰이는데 형식이 가끔 기억이 안나서 정리해두고 싶었다.
그리고 chrome console창에서 코드 복사 붙여넣기가 안되길래 일일히 쳐서 테스트해보다가 이거 방법이 있을텐데.. 하고 찾아보니까 console 창에 allow pasting이라고 입력하니 복사/붙여넣기가 가능해졌다.
그리고 콘솔창에서 Shift + Enter하면 줄바꿈이 된다.
이런 기본적인 것들을 이제서야 알아버렸다.
이제라도 알았으면 됐지! 😂
