[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를 통해 간편하게 특정 날짜의 해당 월의 특정 주의 날짜 리스트를 구할 수 있습니다.