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