How to calculate the number of weekdays between two dates in PHP

1 Answer

0 votes
function countWeekDays($d1, $d2) {
    $ndays = 1 + ($d2->diff($d1)->days);
    $nsaturdays = (int)(($ndays + (int)$d1->format('w')) / 7);

    return $ndays - 2 * $nsaturdays
           - ($d1->format('w') == 0 ? 1 : 0)
           + ($d2->format('w') == 6 ? 1 : 0);
}

echo countWeekDays(new DateTime('2025-01-01'), new DateTime('2025-01-07')) . "\n";
echo countWeekDays(new DateTime('2025-02-01'), new DateTime('2025-02-10')) . "\n";
echo countWeekDays(new DateTime('2024-01-01'), new DateTime('2024-12-31')) . "\n";
echo countWeekDays(new DateTime('2025-01-01'), new DateTime('2025-12-31')) . "\n";




/*
run:

5
6
262
261

*/

 



answered Feb 18, 2025 by avibootz

Related questions

1 answer 87 views
1 answer 80 views
1 answer 101 views
1 answer 72 views
1 answer 88 views
1 answer 161 views
1 answer 143 views
...