Bug #54409 [Com]: strtotime(): "this week" gives incorrect result for Sunday dates

From: Date: Sun, 02 Nov 2014 21:42:31 +0000
Subject: Bug #54409 [Com]: strtotime(): "this week" gives incorrect result for Sunday dates
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-188421@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=54409&edit=1 ID: 54409 Comment by: karl at ivide dot com Reported by: 1234 dot ia at gmail dot com Summary: strtotime(): "this week" gives incorrect result for Sunday dates Status: Assigned Type: Bug Package: Date/time related Operating System: Linux 2.6.36-hardened PHP Version: 5.3.6 Assigned To: derick Block user comment: N Private report: N New Comment: A variation on this is that the following code run on a saturday or sunday yields monday's date, not the same date as one would expect. Tried on PHP 5.6 on Windows. echo date('Y-m-d', strtotime("+0 weekdays")); However, echo date('Y-m-d', strtotime("+0 days")); Works as expected. Previous Comments: ------------------------------------------------------------------------ [2012-03-31 09:54:37] milan dot matejcek at gmail dot com Bug persists (php 5.3.10), in our country (Czech) week start on Monday. If you set Saturday for example (31-03-2012) on your machine var_dump(new DateTime('monday this week'));//26-03-2012 Now let's set Sunday (01-04-2012) on your machine var_dump(new DateTime('monday this week'));//actual 02-04-2012, expected 26-03- 2012 help is variable set first day of week. ------------------------------------------------------------------------ [2011-03-28 17:20:20] 1234 dot ia at gmail dot com Description: ------------ When trying to get relative dates, strtotime() gives incorrect result for relative format "{weekday} this week" when the base date is Sunday. It should return the same day, as it does with other weekdays, but it returns next week's day. Test script: --------------- <?php error_reporting( -1 ); date_default_timezone_set( "Europe/Bratislava" ); for ( $i = 0; $i < 7; $i++ ) { $base = strtotime( "2011/01/17 +$i days 12:00:00" ); $weekday = date( "l", $base ); $relative = strtotime( "$weekday this week 12:00:00", $base ); echo date( "l Y/m/d", $base ), "\n", date( "l Y/m/d", $relative ), "\n\n"; } ?> Expected result: ---------------- Monday 2011/01/17 Monday 2011/01/17 Tuesday 2011/01/18 Tuesday 2011/01/18 Wednesday 2011/01/19 Wednesday 2011/01/19 Thursday 2011/01/20 Thursday 2011/01/20 Friday 2011/01/21 Friday 2011/01/21 Saturday 2011/01/22 Saturday 2011/01/22 Sunday 2011/01/23 Sunday 2011/01/23 Actual result: -------------- Monday 2011/01/17 Monday 2011/01/17 Tuesday 2011/01/18 Tuesday 2011/01/18 Wednesday 2011/01/19 Wednesday 2011/01/19 Thursday 2011/01/20 Thursday 2011/01/20 Friday 2011/01/21 Friday 2011/01/21 Saturday 2011/01/22 Saturday 2011/01/22 Sunday 2011/01/23 Sunday 2011/01/30 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=54409&edit=1

« previous php.bugs (#188421) next »