const today = new Date();
const firstDay = new Date(today.getFullYear(), today.getMonth());
const lastDay = new Date(today.getFullYear(), today.getMonth() + 1, 0);
Date 생성자 함수를 인수 없이 new 연산자와 함께 호출하면 현재 날짜와 시간을 갖는 Date 객체를 반환한다. 이걸 이용해 today라는 변수에 현재 날짜와 시간을 갖는 Date 객체를 할당한다.
new Date(); // 2022-03-14T01:41:54.178Z
참고로 UTC 시간대를 기준으로 나온 시간이다(뒤의 Z에는 UTC 기준이라는 의미가 내포). 우리나라 시간대 KST는 저 시간대에 +9:00 을 해주면 된다.
한달전에 공부할때만 해도 대한민국 표준시를 기준으로 출력됐었는데 현재는 UTC 시간대를 기준으로 나오게 바뀌었다.
Date 메서드 Date.prototype.getFullYear
을 이용하면 Date 객체의 연도를 나타내는 정수를 반환한다. 또한 Date.prototype.getMonth
를 이용하면 Date 객체의 월을 나타내는 0 ~ 11의 정수를 반환한다. (1월은 0, 12월은 11)
Date 생성자 함수에 연, 월, 일, 시, 분, 초, 밀리초를 의미하는 숫자를 인수로 전달하면 지정된 날짜와 시간을 나타내는 Date 객체를 반환한다. 이때 연, 월은 반드시 지정해야한다. 지정하지 않은 인수는 0 또는 1로 초기화된다.
위 두가지 정보를 이용해 Date 객체에 getFullYear
과 getMonth
를 통해 구한 현재 시간의 년도와 월을 인수로 넣어줘서 첫째날과 마지막날의 date 객체를 구하면 된다.