Для расчета рабочих дней в PHP можно использовать несколько методов. Вот несколько примеров:
Метод 1: использование классов DateTime и DateInterval
function calculateBusinessDays($startDate, $endDate) {
$start = new DateTime($startDate);
$end = new DateTime($endDate);
$interval = new DateInterval('P1D');
$interval->d = 1;
$period = new DatePeriod($start, $interval, $end);
$businessDays = 0;
foreach ($period as $date) {
if ($date->format('N') < 6) { // Monday to Friday (1 to 5)
$businessDays++;
}
}
return $businessDays;
}
// Usage example
$startDate = '2023-01-01';
$endDate = '2023-01-31';
$businessDays = calculateBusinessDays($startDate, $endDate);
echo "Number of business days: " . $businessDays;
Метод 2: использование функции strtotime
function calculateBusinessDays($startDate, $endDate) {
$start = strtotime($startDate);
$end = strtotime($endDate);
$businessDays = 0;
while ($start <= $end) {
$dayOfWeek = date('N', $start);
if ($dayOfWeek < 6) { // Monday to Friday (1 to 5)
$businessDays++;
}
$start = strtotime('+1 day', $start);
}
return $businessDays;
}
// Usage example
$startDate = '2023-01-01';
$endDate = '2023-01-31';
$businessDays = calculateBusinessDays($startDate, $endDate);
echo "Number of business days: " . $businessDays;
Эти методы рассчитывают количество рабочих дней (с понедельника по пятницу) между заданной датой начала и окончания. Вы можете изменить их в соответствии с вашими требованиями.