Date 타입을 유지하면서 전/후 Date 출력하기

TypeScript에서 현재 연도월일시분을 가져오는 방법은 아래와 같이 단순하다.

 

const now = new Date();

 현재 기준으로 전날 혹은 다음 달을 포함한 Date를 출력해야되는 경우가 발생하였는데 대부분의 솔루션들은 일 또는 월로 변경시켜서 빼고 더하는 방식으로 Date 타입이 유지가 되지않는다는 단점이 있었다.

 

StackOverflow에서 12년하고도 4달이나 지난 해당 질문에 대한 답변의 대댓글 중에 아래와 같이 처음보는 방식의 코드를 보게되었다.

 

 

How to subtract days from a plain Date?

Is there an easy way of taking a olain JavaScript Date (e.g. today) and going back X days? So, for example, if I want to calculate the date 5 days before today.

stackoverflow.com

출처) StackOverflow

 

위의 코드를 살펴보면 new Date 안에 새로운 new Date()를 선언하고, 일또는 월을 빼거나 더한 후, new Date()를 통해 Date 타입으로 리턴한다.

 

const beforeDate = new Date(new Date().setDate(new Date().getDate() - 1));
const nextMonth = new Date(new Date().setMonth(new Date().getMonth() + 1));

 

해당 방식으로 코드를 작성해본 결과, 아래와 같이 정상적으로 작동함을 확인할 수 있었다.