Edit report at https://bugs.php.net/bug.php?id=63521&edit=1

 ID:                 63521
 Comment by:         payden at paydensutherland dot com
 Reported by:        linesarefuzzy at gmail dot com
 Summary:            Adding 5 weekdays to Fri, Sat or Sun results in
                     Sunday
 Status:             Open
 Type:               Bug
 Package:            Date/time related
 Operating System:   Mac, Linux
 PHP Version:        5.3.18
 Block user comment: N
 Private report:     N

 New Comment:

This has been fixed (some time ago, Jul 29, in git).  It's currently in the 
latest 5.5-dev.  It's not currently in latest 5.4, but I guess it should 
probably 
make it there sometime.


Previous Comments:
------------------------------------------------------------------------
[2012-12-28 10:42:37] michal dot kocztorz at polcode dot pl

Seems to affect DateTime::modify too.
$dt = new DateTime("2013-01-04"); echo $dt->modify("+5 
weekdays")->format("Y-m-d 
H:i:s l") . "<br/>";
$dt = new DateTime("2013-01-05"); echo $dt->modify("+5 
weekdays")->format("Y-m-d 
H:i:s l") . "<br/>";
$dt = new DateTime("2013-01-06"); echo $dt->modify("+5 
weekdays")->format("Y-m-d 
H:i:s l") . "<br/>";
$dt = new DateTime("2013-01-07"); echo $dt->modify("+5 
weekdays")->format("Y-m-d 
H:i:s l") . "<br/>";

Got:
2013-01-13 00:00:00 Sunday
2013-01-13 00:00:00 Sunday
2013-01-13 00:00:00 Sunday
2013-01-14 00:00:00 Monday

------------------------------------------------------------------------
[2012-11-23 02:58:58] linesarefuzzy at gmail dot com

Jon--

Since the bug always results in Sunday when it should be Friday, an
obvious workaround would be to test the weekday of the result, and
if it's Sunday, subtract two days. For example:

<?php
if (date('l', $timestamp) == 'Sunday')
  $timestamp = strtotime(date('Y-m-d', $timestamp) . ' - 2 days');
?>

------------------------------------------------------------------------
[2012-11-22 08:33:11] jon dot drummond at barrowsonline dot com

Has anyone found a solution to this yet? We can not wait for a patch & need a 
workaround in the mean time.

------------------------------------------------------------------------
[2012-11-14 19:00:22] linesarefuzzy at gmail dot com

Description:
------------
Adding 5 weekdays to a Friday, Saturday or Sunday returns the following Sunday 
instead of Friday. Same issue when adding multiples of 5. Starting with any 
other 
weekday works as expected, as does adding any other number of weekdays. 

Test script:
---------------
echo date ( 'l, F j, Y', strtotime ( 'friday + 1 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'friday + 2 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'friday + 3 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'friday + 4 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'friday + 5 weekdays' ) ) . "\n";
echo "\n";             
echo date ( 'l, F j, Y', strtotime ( 'saturday + 1 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'saturday + 2 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'saturday + 3 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'saturday + 4 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'saturday + 5 weekdays' ) ) . "\n";
echo "\n";             
echo date ( 'l, F j, Y', strtotime ( 'sunday + 1 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'sunday + 2 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'sunday + 3 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'sunday + 4 weekdays' ) ) . "\n";
echo date ( 'l, F j, Y', strtotime ( 'sunday + 5 weekdays' ) ) . "\n";

Expected result:
----------------
Monday, November 19, 2012
Tuesday, November 20, 2012
Wednesday, November 21, 2012
Thursday, November 22, 2012
Friday, November 23, 2012

Monday, November 19, 2012
Tuesday, November 20, 2012
Wednesday, November 21, 2012
Thursday, November 22, 2012
Friday, November 23, 2012

Monday, November 19, 2012
Tuesday, November 20, 2012
Wednesday, November 21, 2012
Thursday, November 22, 2012
Friday, November 23, 2012

Actual result:
--------------
Monday, November 19, 2012
Tuesday, November 20, 2012
Wednesday, November 21, 2012
Thursday, November 22, 2012
Sunday, November 25, 2012

Monday, November 19, 2012
Tuesday, November 20, 2012
Wednesday, November 21, 2012
Thursday, November 22, 2012
Sunday, November 25, 2012

Monday, November 19, 2012
Tuesday, November 20, 2012
Wednesday, November 21, 2012
Thursday, November 22, 2012
Sunday, November 25, 2012


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63521&edit=1

Reply via email to