Как рассчитать час между начальной и конечной датами, исключая выходные в AngularJS - PullRequest
1 голос
/ 24 января 2020

В моем приложении у меня есть стартовый сборщик даты и времени. Любая идея, как рассчитать часы между двумя датами, исключая выходные в AngularJS.

1 Ответ

1 голос
/ 24 января 2020

Вот функция, которая будет считать только часы рабочего дня для вас, используя moment.js library -:

function calculateWorkDays(start, end) {
  if (moment(end, "YYYY-MM-DD").isBefore(start, "YYYY-MM-DD")) {
    return null;
  }
  var duration = moment.duration(
    moment(end, "YYYY-MM-DD").diff(moment(start, "YYYY-MM-DD"))
  );
  var hours = duration.asHours();
  var days = moment.duration(
    moment(end, "YYYY-MM-DD").diff(moment(start, "YYYY-MM-DD"))
  )._data.days;
  for (let i = 0; i < days; i++) {
    if (
      [6, 7].includes(
        moment(start, "YYYY-MM-DD")
          .add(i, "days")
          .day()
      )
    ) {
      hours -= 24;
    }
  }
  console.log(hours);
  return hours;
}
...