Данный скрипт округляет в большую сторону, но это можно быстро поправить.
var now = Date.now(); // от сейчас
var start = new Date("2015-04-21 20:18").valueOf(); // скармливаем дату в нормальном формате, либо пишите свой парсер
var hours = 0;
while (now > start) {
if (new Date(start).getDay() < 6) // если это не выходной, здесь же можно проверять на праздничные дни
++hours;
start += 1000*60*60;
}
alert(hours + "часов");
Если подключена библиотека
momentvar now = moment();
var start = moment("2015-04-21 20:18", "YYYY-MM-DD HH:mm");
var hours = 0;
while (now.isAfter(start)) {
if (start.isoWeekday() < 6)
++hours;
start.add(1, 'hour');
}
alert(hours + "часов");