JSFiddle - React, Tailwind, and code Playground
by HemalathaThanigaivel
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
JavaScript
let request = { api:true,
customerId:'5b4700618f356e52f12304d8',
dateRanges:' 12/12/2017-12/01/2018,04/01/2018-01/01/2019',
siteIds:'5b4f1ebb8f57bf05fbe03076,5b4f1dc18f57bf05fbe03056' };
let {dateRanges, siteIds} = request;
dateRanges = dateRanges.split(',');
siteIds = siteIds.split(',');
//console.log(dateRanges, siteIds);
let diffMonth, diffDay, difference, dateObj;
_.map(siteIds, (siteItem)=>{
_.map(dateRanges, (dateItem) =>{
let dateSet = dateItem.split('-');
//console.log(dateSet[0], dateSet[1])
if(dateValidate(dateSet[0]) && dateValidate(dateSet[1])){
diffMonth = moment(dateSet[1], 'DD/MM/YYYY').diff(moment(dateSet[0], 'DD/MM/YYYY'), 'months');
diffDay = moment(dateSet[1], 'DD/MM/YYYY').diff(moment(dateSet[0], 'DD/MM/YYYY'), 'days');
if(diffMonth <= 0) {
difference = 'day';
}else if(diffMonth > 3){
difference = 'month';
}else if(diffMonth <=3 && diffMonth > 0){
difference = 'week';
}
dateObj = {
from: dateSet[0],
to: dateSet[1],
diffType: difference,
siteId: siteItem
}
groupByData(dateObj);
}
});
})
function groupByData(data){
console.log(data)
}
function dateValidate(date) {
//console.log(date)
date = date.trim();
return moment(date, 'DD/MM/YYYY', true).isValid();
}