-
[JavaScript] 자바스크립트 Date 객체 이해하기 - 2프로그래밍 이야기/JavaScript 공부 2020. 6. 21. 22:36
[JavaScript] 자바스크립트 Date 객체 이해하기 - 1에서 살펴본 Date객체는 여러 가지 메서드를 통해서 다양하게 활용될 수 있다.
Date객체 메서드
1. get메서드
Date 객체에는 get으로 시작하는 메서드가 몇 가지 있는데, 말 그대로 Date객체에서 필요한 정보를 가져오는 기능을 한다.
Date 객체에서 가장 자주 사용되는 메서드들이다.
const myDate = new Date(2020, 6, 22); myDate.getFullYear(); myDate.getMonth(); myDate.getDate(); myDate.getHours(); myDate.getMinutes(); myDate.getSeconds(); myDate.getMilliseconds; myDate.getDay(); myDate.getTime(); myDate.getTimezoneOffset();
- getFullYear(): 해당 Date 객체의 연도(네 자릿수)를 반환한다.
- getMonth(): 해당 Date 객체의 월을 반환하는데, 주의할 점은 0부터 11이하의 숫자를 반환한다는 것이다. 예를 들어 1월의 경우에는 0을, 6월의 경우에는 5를 반환한다.
- getDate(): 해당 Date 객체의 일을 반환한다. (1 ~ 31까지)
- getHours(), getMinutes(), getSeconds(), getMilliseconds(): 해당 Date 객체의 시, 분, 초, 밀리초를 반환한다.
- getDay(): 해당 Date 객체의 요일을 반환하는데, 일요일을 기준으로 0부터 6까지 값을 반환한다. 예를 들어 일요일은 0, 수요일은 3, 토요일은 6을 반환한다.
- getTime(): 해당 Date 객체의 시점과 1970년 1월 1일 00시 00분 00초 사이의 간격을 밀리 초로 반환한다. 1970년 1월 1일 00시 00분 00초라는 특별한 기준 시점이 있기 때문에, 서로 다른 날짜끼리 비교를 할 때 유용하게 사용되는 메서드이다.
- getTimezoneOffset(): 현지 시간과 표준 시간의 차이(분)를 반환한다.
2. set메서드
Date 객체에는 set으로 시작하는 메서드도 존재한다. set메서드들은 이름에서도 유추할 수 있듯 이미 생성된 Date객체에서 특정한 부분을 다른 값으로 수정할 때 사용한다.
- setFullYear(year, [month], [date])
- setHours(hour, [min], [sec], [ms])
- setMinutes(min, [sec], [ms])
- setTime(milliseconds) (1970년 1월 1일 00:00:00 UTC부터 밀리초 이후를 나타내는 날짜를 설정)
3. Date.now()
Date객체를 생성하지 않고 그냥 바로 Date.now() 메서드를 활용하면, 현재 시점에서 1970년 1월 1일 00시 00분 00초 사이의 간격을 반환받을 수 있다.
const myDate = new Date(); const myTime = myDate.getTime(); const now = Date.now(); console.log(myTime == now); // true console.log(myTime === now); // true
위 코드에서도 볼 수 있듯이 Date.now() 메서드는 생성 시점을 담고 있는 Date 객체를 만들고서 getTime() 메서드를 호출한 것과 같은 동작을 하기 때문에 동등 비교와 일치 비교 모두 true 값을 반환하는 모습을 볼 수 있다.
하지만, 객체를 생성하지 않는다 한 가지 차이점이 성능측면에서는 꽤나 의미 있는 차이를 만들어내기 때문에 만약 자바스크립트로 시간과 관련된 어플리케이션을 만들 때, 만약 순간순간의 시점만 필요한 경우에는 굳이 Date객체를 따로 생성하지 않고 이 Date.now메서드를 활용하는 것이 메모리 부담을 줄여주기 때문에 성능 측면에서 좀 더 유리하다.
마무리
시계나 달력, 스톱워치 처럼 직접적인 시간이나 날짜를 활용해야 되는 프로젝트뿐만 아니라 블로그나 뉴스, sns에도 글이나 댓글을 작성하면 작성 시간이 기록된다. 그렇기 때문에 Date 객체는 자바스크립트로 개발을 한다면 거의 모든 프로젝트에 필수적인 내용이라고 봐도 무방하다고 생각된다. 만약 자바스크립트를 이제 막 학습하기 시작했다면 Date객체를 좀 더 제대로 익히기 위해 Date 객체를 활용해서 시계나 달력을 만들어 보는 것도 좋을 것 같다.
'프로그래밍 이야기 > JavaScript 공부' 카테고리의 다른 글
[JavaScript] 자바스크립트 window 객체 이해하기 (2) 2020.06.25 [JavaScript] 자바스크립트 소수점 계산 오류 가볍게 이해하기 (0) 2020.06.23 [JavaScript] 자바스크립트 Date 객체 이해하기 - 1 (0) 2020.06.17 [JavaScript] 자바스크립트 this 가볍게 이해하기 (0) 2020.06.14 [JavaScript] 자바스크립트 배열 메서드 (Array Method) 가볍게 이해하기 (0) 2020.06.13