ID:               49115
 Updated by:       ras...@php.net
 Reported By:      php at davidstockton dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         Date/time related
 Operating System: Windows XP/Linux
 PHP Version:      5.2.10
 New Comment:

date() is doing what it is supposed to.  You are passing it a timestamp
in March.

strtotime() returns a timestamp in March because you have not been
specific enough.  When you just give it a month and nothing else, it
makes some assumptions.  For example, it takes the current year and the
current date.  So, you are asking strtotime for February 30, 2009 which
actually doesn't exist since February doesn't have 30 days, so it gives
you the closest match which is March 2nd.

Not a bug.  You just have to be more explicit.  Like "February 1"


Previous Comments:
------------------------------------------------------------------------

[2009-07-30 23:25:53] php at davidstockton dot com

Also, not sure if this is related, but the following code has similar
strange behavior:

for ($i = 1; $i <= 12; $i++) {
    echo date('F', gmmktime(0,0,0,$i)), "<br/>";
}

Output:
--------
January
March
March
April
May
June
July
August
September
October
November
December

Expected:
----------
January
February
March
April
May
June
July
August
September
October
November
December

I'd be happy to open a new defect if it's not related, or to be told
why these are correct behavior.

Thanks.

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

[2009-07-30 23:16:45] php at davidstockton dot com

Description:
------------
If I use strtotime on 'February' the resulting timestamp is in March.

Reproduce code:
---------------
echo date('F', strtotime('February'));


Expected result:
----------------
February

Actual result:
--------------
March


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


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

Reply via email to