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);