From:             
Operating system: Fedora 14 and Windows 7
PHP version:      Irrelevant
Package:          Date/time related
Bug Type:         Bug
Bug description:modify("+5 weekdays") returns Sunday

Description:
------------
Tested on Windows 7: 
  Apache/2.2.16 (Win32) PHP/5.3.5
Tested on Fedora 14: 
  Fedora release 14 (Laughlin) Linux 2.6.35.4-rscloud x86_64 
  php.x86_64 5.3.8-3.fc14
These are the latest stable versions I can find for these two systems. 
(Especially since V6 binaries are no longer available for Windows.)
The Linux system is a live server using a framework that has not been
tested with any later versions than 5.3.8

When modifying a DateTime instance with "+5 weekdays" it will return a date
for a Sunday and not a weekday.

Running the Test script you note that the section for "5" returns Sunday. 
All the other numbers are correct.  Note the pattern for skipping the
weekends is always for Friday, Saturday and Sunday.  However for "+5"
weekends should be skipped for Saturday, Sunday and Monday, which is
different than for any other number.

Test script:
---------------
$days = array(1,2,3,4,5,6,7,8,);
$dates =
array('2012-03-29','2012-03-30','2012-03-31','2012-04-01','2012-04-02','2012-04-03','2012-04-04','2012-04-05',);
foreach ($days as $businessdays)
{
        foreach ($dates as $startdate)
        {
                $start = new DateTime($startdate);
                $date = new DateTime($startdate);
                echo '<br/>'.$businessdays.' : '.$date->format('l').' :
'.$date->format('Y-m-d');
                $date->modify("+{$businessdays} weekdays");
                echo ' : '.$date->format('Y-m-d').' : '.$date->format('l');
        }
        echo '<br/>';
}



Expected result:
----------------
...

5 : Thursday : 2012-03-29 : 2012-04-05 : Thursday
5 : Friday : 2012-03-30 : 2012-04-06 : Friday
5 : Saturday : 2012-03-31 : 2012-04-09 : Monday
5 : Sunday : 2012-04-01 : 2012-04-09 : Monday
5 : Monday : 2012-04-02 : 2012-04-09 : Monday
5 : Tuesday : 2012-04-03 : 2012-04-10 : Tuesday
5 : Wednesday : 2012-04-04 : 2012-04-11 : Wednesday
5 : Thursday : 2012-04-05 : 2012-04-12 : Thursday

...

Actual result:
--------------
...

5 : Thursday : 2012-03-29 : 2012-04-05 : Thursday
5 : Friday : 2012-03-30 : 2012-04-08 : Sunday
5 : Saturday : 2012-03-31 : 2012-04-08 : Sunday
5 : Sunday : 2012-04-01 : 2012-04-08 : Sunday
5 : Monday : 2012-04-02 : 2012-04-09 : Monday
5 : Tuesday : 2012-04-03 : 2012-04-10 : Tuesday
5 : Wednesday : 2012-04-04 : 2012-04-11 : Wednesday
5 : Thursday : 2012-04-05 : 2012-04-12 : Thursday

...

-- 
Edit bug report at https://bugs.php.net/bug.php?id=61642&edit=1
-- 
Try a snapshot (PHP 5.4):            
https://bugs.php.net/fix.php?id=61642&r=trysnapshot54
Try a snapshot (PHP 5.3):            
https://bugs.php.net/fix.php?id=61642&r=trysnapshot53
Try a snapshot (trunk):              
https://bugs.php.net/fix.php?id=61642&r=trysnapshottrunk
Fixed in SVN:                        
https://bugs.php.net/fix.php?id=61642&r=fixed
Fixed in SVN and need be documented: 
https://bugs.php.net/fix.php?id=61642&r=needdocs
Fixed in release:                    
https://bugs.php.net/fix.php?id=61642&r=alreadyfixed
Need backtrace:                      
https://bugs.php.net/fix.php?id=61642&r=needtrace
Need Reproduce Script:               
https://bugs.php.net/fix.php?id=61642&r=needscript
Try newer version:                   
https://bugs.php.net/fix.php?id=61642&r=oldversion
Not developer issue:                 
https://bugs.php.net/fix.php?id=61642&r=support
Expected behavior:                   
https://bugs.php.net/fix.php?id=61642&r=notwrong
Not enough info:                     
https://bugs.php.net/fix.php?id=61642&r=notenoughinfo
Submitted twice:                     
https://bugs.php.net/fix.php?id=61642&r=submittedtwice
register_globals:                    
https://bugs.php.net/fix.php?id=61642&r=globals
PHP 4 support discontinued:          
https://bugs.php.net/fix.php?id=61642&r=php4
Daylight Savings:                    https://bugs.php.net/fix.php?id=61642&r=dst
IIS Stability:                       
https://bugs.php.net/fix.php?id=61642&r=isapi
Install GNU Sed:                     
https://bugs.php.net/fix.php?id=61642&r=gnused
Floating point limitations:          
https://bugs.php.net/fix.php?id=61642&r=float
No Zend Extensions:                  
https://bugs.php.net/fix.php?id=61642&r=nozend
MySQL Configuration Error:           
https://bugs.php.net/fix.php?id=61642&r=mysqlcfg

Reply via email to