[javascript] 특정 날짜의 해당 월의 특정 주의 날짜 리스트 구하기
먼저, Moment.js 라이브러리를 설치하고 날짜를 처리할 수 있는 JavaScript 파일에 추가합니다.
npm install moment
다음, 원하는 날짜를 Moment 객체로 만들고 해당 날짜의 month를 기준으로 원하는 주차의 시작일과 마지막일을 가져오는 방법입니다.
const moment = require('moment');
function getDatesOfWeekInMonth(year, month, week) {
const startOfMonth = moment([year, month - 1]); // month는 0부터 시작하기 때문에 1을 빼줍니다.
const firstDay = startOfMonth.startOf('month').day('Sunday'); // 해당 월의 첫 주의 일요일을 찾습니다.
const startDate = firstDay.add(week - 1, 'weeks'); // 요청된 주차의 시작일을 가져옵니다.
const endDate = startDate.clone().endOf('week'); // 요청된 주차의 마지막일을 가져옵니다.
let current = startDate.clone();
const dates = [];
while (current.isBefore(endDate)) {
dates.push(current.clone());
current.add(1, 'day');
}
return dates;
}
const year = 2023;
const month = 11;
const week = 3;
const datesOfWeekInMonth = getDatesOfWeekInMonth(year, month, week);
console.log(datesOfWeekInMonth.map(date => date.format('YYYY-MM-DD')));
위의 코드에서는 Moment.js를 사용하여 원하는 날짜의 해당 월에서 특정 주의 날짜 리스트를 얻는 방법을 보여주고 있습니다.
이러한 방법을 사용하면 Moment.js를 통해 간편하게 특정 날짜의 해당 월의 특정 주의 날짜 리스트를 구할 수 있습니다.