?
Solved

Calculate Number of Days, Excluding Sundays, Between Two Dates

Posted on 2008-06-19
1
Medium Priority
?
3,027 Views
Last Modified: 2013-12-13
I'm using this code to calculate the difference (number of days) between any two dates.
  Both $begin_mk and $end_mk are in YYYY-mm-dd format, like   2008-06-19 .

How could I modify it to exclude Sundays from the calculation?  

For example, if there are 90 calendar days from 2008-01-01 to 2008-03-31 , then I guess I need to:
1) calculate the number of Sundays between those two dates, and
2) subtract the number of Sundays from the total number of days (90, in this case)

How to calculate the number of Sundays between any two dates? Or is there some better, easier way to do this?
$begin_mk = strtotime("$begin"); 
$end_mk = strtotime("$end");
 
$datediff = ( $end_mk > $begin_mk ? ( $end_mk - $begin_mk ) : ( $begin_mk - $end_mk ) );
$days = ( ( $datediff / 3600 ) / 24 );
 $days = $days + 1; // to be inclusive of last date;

Open in new window

0
Comment
Question by:FrankTech
1 Comment
 

Accepted Solution

by:
FrankTech earned 0 total points
ID: 21824609
Well, I finally came up with this.  Anybody have a better or easier way?
<?php
 
// ** Set Beginning and Ending Dates, in YYYY-mm-dd format **
 $begin = '2008-01-01';
 $end = '2008-03-31';
 $begin_mk = strtotime("$begin"); 
 $end_mk = strtotime("$end");
 
// ** Calculate number of Calendar Days between the two dates
 $datediff = ( $end_mk > $begin_mk ? ( $end_mk - $begin_mk ) : ( $begin_mk - $end_mk ) );
 $days = ( ( $datediff / 3600 ) / 24 );
  $days = $days + 1; // to be inclusive of last date;
 
// ** Count days excluding Sundays **
  $iteration = 0; 
  $numDaysExSunday = 0;
for ($i=1; $i<=$days; $i++) {
  $weekday = date("w", strtotime("$begin + $iteration day"));
       echo "$weekday<br>";
     if ($weekday !== '0') {
        $numDaysExSunday++;
     }
  $iteration++; 
}
 
// ** Output number of days excluding Sundays **
echo $numDaysExSunday;
?>

Open in new window

0

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
I recently worked on a Wordpress site that utilized the popular ContactForm7 (https://contactform7.com/) plug-in that only sends an email and does not save data. The client wanted the data saved to a custom CRM database. This is my solution.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

585 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question