In this article, we will see how to count days between two dates in PHP excluding weekends. Here, we will learn to get day differences without weekends in PHP. Also, we will use the PHP date and time function and date interval function. S, you can easily count the day between two dates.
So let's see, PHP day difference without weekends, calculate days between two dates excluding weekends in PHP, and how to count days between two dates in PHP.
DateInterval: A date interval stores either a fixed amount of time in years, months, days, hours etc, or a relative time string in the format.
DatePeriod: A date period allows iteration over a set of dates and times, recurring at regular intervals, over a given period.
In this example, we will use DateTime
, DateInterval
and DatePeriod
.
<!DOCTYPE html>
<html>
<body>
<?php
$start = new DateTime('2022-01-01');
$end = new DateTime('2022-01-31');
// otherwise the end date is excluded (bug?)
$end->modify('+1 day');
$interval = $end->diff($start);
// total days
$days = $interval->days;
// create an iterateable period of date (P1D equates to 1 day)
$period = new DatePeriod($start, new DateInterval('P1D'), $end);
// best stored as array, so you can add more than one
$holidays = array('2022-01-26');
foreach($period as $dt) {
$curr = $dt->format('D');
// substract if Saturday or Sunday
if ($curr == 'Sat' || $curr == 'Sun') {
$days--;
}
// (optional) for the updated question
elseif (in_array($dt->format('Y-m-d'), $holidays)) {
$days--;
}
}
echo $days;
?>
</body>
</html>
Output:
You might also like:
In this article, we will see how to add an index in laravel 10 migration. Here, we will learn about the laravel 10...
May-03-2023
In this article, we will learn about the laravel signature pad example. we will perform a digital signature pad in larav...
Feb-03-2021
In this article, we will see the laravel 8 form validation example. form validation in laravel is a very common fun...
Oct-10-2020
In this article, we will explore the process of rolling back specific migrations in Laravel, focusing on Laravel version...
Nov-11-2022