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