시작일(YYYY-MM-DD) ~ 종료일(YYYY-MM-DD) 사이의 모든 [시, 일, 월, 년] 단위의 배열을 만들 수 있습니다.
코드
const getDateRange = (startDate, endDate) => {
const start = new Date(startDate);
const end = new Date(endDate);
const result = [];
while (start <= end) {
result.push(start.toISOString().split('T')[0]);
start.setDate(start.getDate() + 1);
}
return result;
}
시작일과 종료일을 받아주고, 시작일이 종료일을 넘을 때까지 하루를 계속 더해주면서 날짜를 구해주는 방식입니다.
시간, 일, 월, 년도 단위 배열 만들기
const start = new Date();
// 현재 시간
start.setHours(date.getHours() + 1);
// 현재 일
start.setDate(date.getDate() + 1);
// 현재 월
start.setMonth(date.getMonth() + 1)
// 현재 년도
start.setFullYear(date.getFullYear() + 1);
위에서 예시로 사용한 하루를 더하는 코드에서는 setDate(), getDate() 메서드를 사용하였습니다. 이를 다른 메서드로 대체하면 하루단위가 아닌 월, 년 간격의 날짜를 구할 수도 있습니다.
// ...
while (start <= end) {
result.push(start.toISOString().split('T')[0]);
// 예시 - 1시간 단위의 모든 날짜
// ex) start.setHours(start.getHours() + 1);
}
...
}
setDate(getDate() + 1) 코드는 하루를 더 해줄 수 있는 코드이고, 해당 코드를 바꾸면, 다른 날짜 기준으로 더해줄 수 있습니다.
단, 시간 단위로 구해줄 때는 포맷해 주는 부분을 날짜와 시간도 같이 포함시켜 줘야 변화를 확인할 수 있습니다.