@robotwerter

Как не считать выходные дни?

То есть есть дата, допустим 17.05.2015 15:15, мне нужно посчитать сколько часов прошло с того времени, но не включая выходные дни (нужно считать только с понедельника по пятницу + не включать в подсчёт дни, которые отмечены как выходные будут (в отдельной переменной)).
  • Вопрос задан
  • 1490 просмотров
Решения вопроса 1
@iShatokhin
JS developer
Данный скрипт округляет в большую сторону, но это можно быстро поправить.

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 + "часов");


Если подключена библиотека moment
var 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 + "часов");
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@DragorWW
Front-end Developer
Есть Api можно юзать его
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы