I should have specified, those dates were in US form.. so:

$nowdate = mktime(0, 0, 0, 1, 4, 2002);
$futuredate = mktime(0, 0, 0, 2, 5, 2002);

$futuredate - $nowdate equals 2764800
((2764800 / 86400) / 7) = 4.57142

then when floored, comes out to 4.

The only thing I can think of possibly getting around it is setting
futuredate to mktime(23, 59, 59, $month, $day, $year), but I still come up
short .. those two timestamps, after all the math before the floor(), equals
4.71, which still results in a 4.  I've tried ceil and round, but with
similar inaccuracies in other dates (going 1 day too far in some cases with
ceil).

Perhaps this function I found is just not the right way to go about it, but
if anyone has any more insight, it's greatly appreciated.

Chad

-----Original Message-----
From: Marek Kilimajer [mailto:[EMAIL PROTECTED]]
Sent: Friday, December 27, 2002 2:48 AM
To: Chad Day
Cc: php general
Subject: Re: [PHP] Finding # of weekdays between 2 dates..


WFM:

$nowdate = mktime(0, 0, 0, 4, 1, 2002);
$futuredate = mktime(0, 0, 0, 5, 2, 2002);

echo weekdaysBetween ($nowdate,$futuredate,2);

I get 5

Chad Day wrote:

>I found this function in the list archives while searching on how to find
>the number of a weekday (say, Tuesdays) between 2 dates..
>
>  function weekdaysBetween ($timestamp1, $timestamp2, $weekday)
>  {
>    return floor(intval(($timestamp2 - $timestamp1) / 86400) / 7)
>      + ((date('w', $timestamp1) <= $weekday) ? 1 : 0);
>  }
>
>Sometimes it works, but I've come across a date while testing this that
>doesn't work, which makes me think there is some bug in the function that
>I'm not seeing.
>
>The 2 dates I am trying are:
>
>01-04-2002
>and
>02-05-2002
>
>There should be 5 Tuesdays:
>
>01-08-2002
>01-15-2002
>01-22-2002
>01-29-2002
>02-05-2002
>
>Yet the script only returns 4, leaving off 02-05-2002.
>
>       $nowdate = mktime(0, 0, 0, $STARTMONTH, $STARTDAY, $STARTYEAR);
>       $futuredate = mktime(0, 0, 0, $ENDMONTH, $ENDDAY, $ENDYEAR);
>
>That's how I'm generating the time stamps to pass to the function, and I've
>confirmed the dates I've entered are correct..
>
>       echo weekdaysBetween($nowdate, $futuredate, 2);
>
>Returns 4 ..
>
>
>can anyone assist?
>
>Thanks,
>Chad
>
>
>
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to