자바스크립트에서 기본적으로 사용 할 수 있도록 정해놓은 Object를 built-in Object(내장 객체)라고 부른다.
종류가 여러가지 있지만, 이 중에서 Date object를 먼저 다뤄보려고 한다.
Date object는 기본적으로 날짜와 시간을 나타내기 위한 method등이 포함 되어있는 object이다.
Date()와 같이 사용하며, 이를 통해 시간, 분, 초 그리고 연도, 날짜를 알 수 있고, 시간은 UTC(협정세계시)를 기준으로 한다.
시간을 나타낼때는 밀리초를 기준으로 하며, 1000ms = 1s 이기에 초를 나타낼때 밀리초 단위로 입력해야 한다.
const date = new Date();
와 같이 object를 나타낼 수 있으며, 인수로 값을 변화시키는 예는 다음과 같다.
먼저 첫번째로 아무 인수도 전달 시키지 않았을때는 현재날짜와 시간을 가지는 인스턴스를 반환한다.
const date = new Date();
console.log(date); // Thu May 16 2019 17:16:13 GMT+0900 (한국 표준시)
두번때로, 밀리초가 인수로 전달되면, 1970년 1월 1일 00:00(UTC)에서 입력된 밀리초를 초, 분, 시간으로 환산하고, 경과한 날짜와 시간을 가지는 인스턴스를 반환한다.
(1970년 1월 1일 00:00(UTC)가 기준인 이유는 자바스크립트가 기준으로 삼고 있는 유닉스 스탬프가 1970년 1월 1일 00:00(UTC)이 기준이기 때문이다.)
let date = new Date(0);
console.log(date); // Thu Jan 01 1970 09:00:00 GMT+0900 (한국 표준시)
date = new Date(86400000);
console.log(date); // FFri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
(86400000 = 24h)
와 같이 나타낼 수 있다.
세번째는 문자열로 인수가 전달 되었을때, 지정된 문자열 형식에 따라 시간을 나타낸다.
단, 입력되는 문자열은 Date.parse에 의해 변환이 가능해야 한다.
let date = new Date('May 16, 2019 17:22:10');
console.log(date); // Thu May 16 2019 17:22:10 GMT+0900 (한국 표준시)
date = new Date('2019/05/16/17:22:10');
console.log(date); // Thu May 16 2019 17:22:10 GMT+0900 (한국 표준시)
네번째는 new Date(year, month[, day, hour, minute, second, millisecond])
와 같이 연,월,시,분,초를 의미하는 숫자를 전달하면 지정 된 날짜와 시간을 가지는 인스턴스를 반환한다.
let date = new Date(2019, 4);
console.log(date); // Wed May 01 2019 00:00:00 GMT+0900 (한국 표준시)
Date.now는 기준점이 되는 1970년 1월 1일 00:00(UTC)에서 현재까지 경과한 시간을 밀리초 단위로 가르쳐준다.
Date.parse는 기준점 1970년 1월 1일 00:00(UTC)에서 인수로 전달 된, 문자열로 표시 된 시간까지 경과한 시간을 밀리초로 환산해 알려준다.
Date.UTC는 new Date(year, month[, day, hour, minute, second, millisecond])
형식으로 전달 된 시간까지, 기준점에서 경과한 시간을 밀리초 단위로 알려준다. 전달 된 인수는 시스템의 현지시간이 아니라, UTC시간으로 전달된다.
get뒤에 ~표시된 것은, 이 뒤에 올 수 있는 method가 각각 fullyear, month, day, hour, minutes, seconds등을 사용하여, 해당 입력 된 인수에 해당하는 값을 반환 받는다.
예를 들어보자면,
const today = new Date();
const year = today.getFullYear();
console.log(today); // Wed Apr 28 2021 23:47:09 GMT+0900 (대한민국 표준시)
console.log(year); // 2021
로 나타낼 수 있다.
get과는 반대로, 설정 할 수 있는 method도 있다.
set method는 인수로 전달 된 부분을 재설정하며, 재설정 한 단위보다 아랫단위, 즉 연을 설정하면 월,일등도 재설정이 가능하다.
today.setFullYear(2000);
let year = today.getFullYear();
console.log(today); // Wed Apr 28 2000 23:47:09 GMT+0900 (한국 표준시)
console.log(year); // 2000
와 같이 나타낸다.
get과 set에서 Time()이 들어오게 되면,
1970년 1월 1일 00:00(UTC)에서 현재시간까지 경과한 밀리초를 불러오거나, 재설정 할 수 있다.
이상이 자주 사용 되거나, 기본적인 Date와 시간에 관련된 mehtod등을 알아보았다.
이 외에도 다루지 않은 method가 있기에 이것저것 만져보면서 익숙해지도록 하자.