Исключение субботы и воскресенья при подсчете дней в PHP и MySQL

Для уточнения: вы хотите исключить субботу и воскресенье при подсчете количества дней с использованием PHP и MySQL. Вот несколько способов добиться этого:

Метод 1: использование классов PHP DateTime и DateInterval

$start = new DateTime('2024-01-01');
$end = new DateTime('2024-01-10');
$interval = new DateInterval('P1D'); // 1 day interval
$period = new DatePeriod($start, $interval, $end);
$days = 0;
foreach ($period as $date) {
    if ($date->format('N') < 6) { // Exclude Saturday (6) and Sunday (7)
        $days++;
    }
}
echo $days; // Output: 7

Метод 2: использование запроса MySQL

$query = "
    SELECT COUNT(*) AS total_days
    FROM (
        SELECT DATE_ADD('2024-01-01', INTERVAL @i:=@i+1 DAY) AS date
        FROM information_schema.tables, (SELECT @i:=0) r
        LIMIT 10
    ) AS dates
    WHERE WEEKDAY(date) < 5; -- Exclude Saturday (5) and Sunday (6)
";
$result = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($result);
echo $row['total_days']; // Output: 7

Метод 3: использование функции PHP strtotime()

$start = strtotime('2024-01-01');
$end = strtotime('2024-01-10');
$days = 0;
for ($i = $start; $i <= $end; $i = strtotime('+1 day', $i)) {
    if (date('N', $i) < 6) { // Exclude Saturday (6) and Sunday (7)
        $days++;
    }
}
echo $days; // Output: 7