var now = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";
var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = d.format("hh:mm:ss");
// outputs: "48:39:30"
// moment version => 2.13.0.
const start = moment().subtract(1, 'days');
const end = new Date();
const actual = moment().subtract(1, 'hours');
const test = moment(actual).isBetween(start, end);
console.log(test);
// moment version < 2.13.0.
var startDate = new Date(2013, 1, 12)
, endDate = new Date(2013, 1, 15)
, date = new Date(2013, 2, 15)
, range = moment().range(startDate, endDate);
range.contains(date);
You can use one of the moment plugin -> moment-range to deal with date range:
var startDate = new Date(2013, 1, 12)
, endDate = new Date(2013, 1, 15)
, date = new Date(2013, 2, 15)
, range = moment().range(startDate, endDate);
range.contains(date); // false
// 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)