출처 - 모던 자바스크립트 Deep Dive (이웅모 지음)
1. Date 생성자 함수
Date 생성자 함수는 new 연산자를 쓰냐 쓰지 않냐에 따라 다른 결과를 출력한다
new Date(); // Wed Jun 08 2022 21:38:55 GMT+0900 (한국 표준시)
Date(); // 'Wed Jun 08 2022 21:39:38 GMT+0900 (한국 표준시)'
new Date()는 현재 날짜와 시간을 가지는 Date 객체를 반환한다.
(Date 객체는 본래 정수값이지만, 콘솔에 출력하면 날짜와 시간 정보를 출력한다)
반면, Date()는 현재 날짜와 시간을 문자열로 반환한다.
2. new Date(밀리초)
Date 생성자 함수에 숫자 타입의 밀리초를 인수로 전달하면 1970년 1월 1일 00:00:00(UTC) 을 기점으로 인수로 전달된 밀리초 만큼 경과한 날짜와 시간을 나타내는 Date 객체를 반환한다.
new Date(0); // Thu Jan 01 1970 09:00:00 GMT+0900 (한국 표준시)
/*
86400000ms는 1day를 의미한다
1s = 1,000ms
1m = 60s * 1,000ms = 60,000ms
1h = 60m * 60,000ms = 3,600,000ms
1d = 24h * 3,600,000ms = 86,400,000ms
*/
new Date(86400000); // Fri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
new를 붙이지 않고 인수를 전달해도 Date()가 출력된다.
3. new Date(dateString)
Date 생성자 함수에 날짜와 시간을 나타내는 문자열을 인수로 전달하면 동일 시간의 Date 객체를 반환한다.
이 문자열은 Date.parse 메서드로 해석 가능한 문자열이어야 한다.
4. new Date(연, 월 등)
연, 월, 일, 시, 분, 초, 밀리초 (순서 정해져 있음) 를 의미하는 숫자를 인수로 전달하면 지정된 날짜와 시간을 나타내는 Date 객체를 반환한다.
// 월에는 0~11 까지의 숫자가 올 수 있다
new Date(2020, 2); // Sun Mar 01 2020 00:00:00 GMT+0900 (한국 표준시)