Принятый ответ в этом вопросе: расчетные рабочие дни являются ошибками. Просто проверьте
echo getWorkingDays("2012-01-01","2012-05-01",$holidays);
Проблема заключается в этом фрагменте:
$days = ($endDate - $startDate) / 86400 + 1;
Таким образом, минимальный нерабочий пример:
Почему это выражение:
($endDate - $startDate) / (60*60*24);
Не является целым числом для:
$startDate = strtotime("2012-01-01"); $endDate = strtotime("2012-05-01");