JSFiddle - React, Tailwind, and code Playground

by Viet27th

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

JavaScript

let divisionDateRangeToWeek = function(startDate, endDate) {
  let arrayWeek = [];
  let weekDay = [0, 1, 2, 3, 4, 5, 6];
  let dayPlus = 0;
  let start = new Date(startDate);
  for (let day of weekDay) {
    if (start.getDay() + day === 8) {
      dayPlus = day;
      break;
    }
  }
  if (start.getDay() === 0) {
    dayPlus = 1;
  }

  start.setDate(start.getDate() + dayPlus);

  for (let i = 0;;) {
    start.setDate(start.getDate() + i);
    i = 7;
    let end = new Date(start.getTime());
    end.setDate(end.getDate() + 4);
    if (end.getTime() > new Date(endDate).getTime()) {
      break;
    }
    let firstDateString = moment(start).format('YYYY-MM-DD');
    let lastDateString = moment(end).format('YYYY-MM-DD');
    let str = `${firstDateString} - ${lastDateString}`;
    arrayWeek.push(str);
  }
  
  return arrayWeek;
}

let arrayWeek = divisionDateRangeToWeek('2018/6/3', '2018/6/27')
console.log(arrayWeek);