PHP'de iki tarih arasındaki iş günü sayısını hesaplama - Vara Script

Bu yazımızda iki tarih aralığında iş günü sayısını hesaplamanıza yardımcı olacak hazır bir fonksiyon bulacaksınız.

PHP'de iki tarih arasındaki iş günü sayısını hesaplama - Vara Script

Seçtiğiniz tarih aralığında iş günü sayısını hesaplayabilen php betiği.

function getWorkingDays($startDate,$endDate,$holidays){
   $endDate = strtotime($endDate);
   $startDate = strtotime($startDate);

   $days = ($endDate - $startDate) / 86400 + 1;

   $no_full_weeks = floor($days / 7);
   $no_remaining_days = fmod($days, 7);

   $the_first_day_of_week = date("N", $startDate);
   $the_last_day_of_week = date("N", $endDate);

   if ($the_first_day_of_week <= $the_last_day_of_week) {
       if ($the_first_day_of_week <= 6 && 6 <= $the_last_day_of_week) $no_remaining_days--;
       if ($the_first_day_of_week <= 7 && 7 <= $the_last_day_of_week) $no_remaining_days--;
   }
   else {
       if ($the_first_day_of_week == 7) {
           $no_remaining_days--;

           if ($the_last_day_of_week == 6) {
               $no_remaining_days--;
           }
       }
       else {
           $no_remaining_days -= 2;
       }
   }

   $workingDays = $no_full_weeks * 5;
   if ($no_remaining_days > 0 )
   {
       $workingDays += $no_remaining_days;
   }

   foreach($holidays as $holiday){
       $time_stamp=strtotime($holiday);
       if ($startDate <= $time_stamp && $time_stamp <= $endDate && date("N",$time_stamp) != 6 && date("N",$time_stamp) != 7)
           $workingDays--;
   }

   return $workingDays;
}

Nasıl kullanılır? İlk olarak, tatil tarihlerini belirtiyoruz:

$holidays = array("2008-12-25", "2008-12-26", "2009-01-01");

Ardından başlangıç, bitiş tarihleri ​​ve bir dizi tatili geçerek işlevimizi çağırırız:

echo getWorkingDays("2008-12-22", "2009-01-02", $holidays);

Tepkiniz nedir?

like

dislike

love

funny

angry

sad

wow