var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days') // 1
<!DOCTYPE html>
<html>
<head>
<title>jquery moment example - NiceSnippets.com</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" crossorigin="anonymous"></script>
</head>
<body>
<h1>jquery moment example - NiceSnippets.com</h1>
</body>
<script type="text/javascript">
var getDaysBetweenDates = function(startDate, endDate) {
var now = startDate.clone(), dates = [];
while (now.isSameOrBefore(endDate)) {
dates.push(now.format('MM/DD/YYYY'));
now.add(1, 'days');
}
return dates;
};
var startDate = moment('2021-01-01');
var endDate = moment('2021-01-06');
var dateList = getDaysBetweenDates(startDate, endDate);
console.log(dateList);
</script>
</html>
// npm i moment --save
// npm i moment-business-days --save
var moment = require('moment');
var moment_business_days = require('moment-business-days');
//use this if it works for you
//var date_count = moment_business_days('2022-06-20', 'MM-DD-YYYY').businessDiff(moment_business_days('2022-07-08','MM-DD-YYYY'));
function countDateRange(start_date, end_date, included_days = [0, 1, 2, 3, 4, 5, 6]){ // 0 as Sunday - 6 as Saturday
//set working days
moment_business_days.updateLocale('us', {
workingWeekdays: included_days
});
//get difference between dates
var date_diff = moment(end_date).diff(moment(start_date), 'days')
var result = 0
var date = start_date
//check first day
if(moment_business_days(date, 'YYYY-MM-DD').isBusinessDay()){
result += 1
}
//check all days
for (let i = 1; i <= date_diff; i++) {
date = moment(date).add(1, 'days').format("YYYY-MM-DD")
if(moment_business_days(date, 'YYYY-MM-DD').isBusinessDay()){
result += 1
}
}
return result
}
var date_count = countDateRange('2022-06-20', '2022-07-08', [1, 2, 3, 4, 5])
console.log(date_count)