Date 객체 사용법에 대해 알아보자 🕛

안녕하세요! 두두코딩 입니다 ✋
오늘은 JS Date 개념에 대해 알아보겠습니다.

🖇 소스코드에 마우스를 올리고 copy 버튼을 누를 경우 더 쉽게 복사할 수 있습니다!

궁금한 점, 보안점 남겨주시면 성실히 답변하겠습니다. 😁
+ 감상평 댓글로 남겨주시면 힘이됩니다. 🙇

Date, 시스템 시계란?

표준 빌트인 객체 Date는 날짜와 시간을 위한 메서드를 제공하는 빌트인 객체이면서 생성자 함수이다.

UTC (협정 세계시)인 국제 표준시를 기준으로 시간이 계산된다. 한국 표준시는 KST라고 부르며, UTC 기준 9시간을 더한 시간을 의미한다. 시스템에서는 UTC를 1970년 1월 1일 기준으로 잡고있으며, Epoch 타임이라고 부르며, UNIX에서부터 파생된 것으로 알려져있다.

Date 생성자 함수

Date는 앞서 이야기 한 것과 같이 생성자 함수이다. new 키워드를 활용해 생성할 수 있는 함수를 의미하며, 객체 내부적으로는 날짜와 시간을 나타내는 정수값을 갖고 있다.

해당 정수 값은 UTC (1970.1.1)을 기점으로 현재까지의 날짜와 시간까지의 밀리초를 나타 낸다.

예를들어 1970년 1월 1일 0시를 나타내는 Date 객체 같은 경우 내부적으로 정수 값 0 을 갖는다.

Date 생성자함수를 활용해 UTC 기준이 아닌 특정 시간을 지정하고 싶을 경우에어는 인자로 값을 넘겨 주면 된다. 아래의 예시를 통해 Date 객체를 생성하는 4가지 방법에 대해 알아보자.

1. new Date()

첫번째 방법은 가장흔히 사용할 수 있는 생성자 함수를 생성하는 것이다.

// 현재 시간이 출력된다.
// 반환 값은 Date 객체이다.
// Sun Feb 27 2022 10:14:32 GMT+0900 (한국 표준시)
// 위의 값을 담고 있는 객체가 반환 됨.

new Date();

만약 생성자 함수호출이 아닌 일반함수를 호출할 경우 현재 시간에 대한 문자열을 출력해준다.

// 일반함수 호출시 반환 값이 다르다.
// 현재 시간을 문자열로 출력해준다.
// 'Sun Feb 27 2022 10:14:02 GMT+0900 (한국 표준시)'
// 위의 문자열이 출력된다.

Date();

2. new Date(milliseconds)

두 번째 방법은 Date 함수의 인자로 숫자를 전달할 경우다. 숫자를 전달할 경우 milliseconds로 인식을 하고, 해당 시간 값을 UTC 기준으로 더해서 출력해준다.

예를들어, 86400000ms 같은 경우 1day 하루를 나타낸다. 따라서, Date 인자로 해당 값을 넣어주게 될 경우 1970년 1월 1일 기준으로 하루가 지난 시간을 반환 받을 수 있다.

/*
	86400000는 1day를 의미한다.
	1s = 1,000ms;
	1m = 60 * 1,000ms = 60,000ms;
	1h = 60m * 60,000ms = 3,600,000ms;
	1d = 24h * 3,600,000ms = 86,400,000ms;
*/

new Date(86400000);