#41873 [Opn->Asn]: strtotime produces incorrect output
| From: | jani@php.net | Date: | Tue, 04 Sep 2007 22:41:16 +0000 |
| Subject: | #41873 [Opn->Asn]: strtotime produces incorrect output | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-117140@lists.php.net to get a copy of this message | ||
ID: 41873
Updated by: jani@php.net
Reported By: kevin at creativeanvil dot com
-Status: Open
+Status: Assigned
Bug Type: Date/time related
Operating System: RHEL 4
PHP Version: 5.2.3
-Assigned To:
+Assigned To: derick
New Comment:
Assigned to the ext/date maintainer.
Previous Comments:
------------------------------------------------------------------------
[2007-09-04 14:01:08] kevin at creativeanvil dot com
Doing this:
<?php
$stamp = strtotime("last Friday", gmmktime(0,0,0,11+1,0,2007));
echo date("m/d/Y", $stamp)."<br>";
$stamp = strtotime("last Friday", gmmktime(0,0,0,8+1,0,2007));
echo date("m/d/Y", $stamp);
?>
Expected Value:
11/30/2007
08/31/2007
Actual Value
11/23/2007
08/24/2007
That should make more sense.
Again this seems to happen when the last day of the month is the last
Friday that we're looking for, then it returns the previous Friday.
------------------------------------------------------------------------
[2007-07-04 11:23:18] tony2001@php.net
So how to reproduce it?
------------------------------------------------------------------------
[2007-07-03 19:30:53] kevin at creativeanvil dot com
Yes, most of the time it is correct, but I've found if the day wanted
is the last day of the month, it may not work correctly. Friday was an
example, it probably has nothing to do with Friday specifically, that's
just what I tested and found the problem.
------------------------------------------------------------------------
[2007-07-03 06:44:47] tony2001@php.net
Works perfectly fine here:
10/26/2007
07/27/2007
------------------------------------------------------------------------
[2007-07-02 15:13:26] kevin at creativeanvil dot com
Description:
------------
For the last friday of the month for several months it is incorrect.
Tends to happen when the last day of the month is on the date you're
looking for.
Reproduce code:
---------------
$stamp = strtotime("last Friday", gmmktime(0,0,0,11,0,2007);
echo date("m/d/Y", $stamp)."<br>;
$stamp = strtotime("last Friday", gmmktime(0,0,0,8,0,2007);
echo date("m/d/Y", $stamp);
Expected result:
----------------
11/30/2007
8/31/2007
Actual result:
--------------
11/23/2007
8/24/2007
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41873&edit=1