I have a start date object and an end date object in javascript e.g.
var startDate = moment("2019-04-22T09:20:00+05:00");
var endtDate = moment("2019-04-25T11:00:00+05:00");
now I want to have an output like this
[880,1440,660] //array for the numbers of minutes for each day present in the given range
I have tried something using moment range module but still in vain
Thanks for the help in advance
Try this code.
var startDate = moment("2019-04-22T09:20:00+05:00");
var endDate = moment("2019-04-25T11:00:00+05:00");
var duration = moment.duration(endDate.diff(startDate));
var days = Math.round(duration.asDays());
var start,end;
var minutes = [];
for(i = 0; i<=days; i++){
if(i == 0){
start = startDate;
end = moment(startDate).endOf("day").utcOffset("+05:00");
}else if(i == days){
start = moment(endDate).startOf('day').utcOffset("+05:00");
end = endDate;
} else {
start = moment(startDate).add('days', i).startOf('day').utcOffset("+05:00");
end = moment(startDate).add('days', i).endOf('day').utcOffset("+05:00");
}
var duration = moment.duration(end.diff(start));
var min = duration.asMinutes();
minutes.push(Math.round(min))
}
console.log(minutes)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>