Bug #27789 [Com]: march returned instead of february with mktime and date
[email protected] ("john at rfnsoftware dot com") Mon, 29 Mar 2010 18:52:10 +0200 (CEST)
| Newsgroups | php.bugs |
|---|---|
| Message-ID | <[email protected]> |
Edit report at http://bugs.php.net/bug.php?id=27789&edit=1
ID: 27789
Comment by: john at rfnsoftware dot com
Reported by: summercom at comcast dot net
Summary: march returned instead of february with mktime and
date
Status: Bogus
Type: Bug
Package: Date/time related
Operating System: Windows XP SP1
PHP Version: 4.3.5
New Comment:
$mydate->modify("-1 month") yields same month when current date is March
29-31, since February is 28 or 29 days. So if this was reported in 2004,
should not it be corrected yet? Is it programmers responsibility to
check - if subracting one month does not change the month then do it
again?
I don't call that clutter. I don't have time to search for bug reports
all of the time. This one should get fixed ASAP.
Previous Comments:
------------------------------------------------------------------------
[2004-03-30 22:00:05] [email protected]
Today is the 30th. When using mktime with only four parameters as you
are you'll get the hour, minute, second, and month specified for the
current day and year.
February 30th, because it doesn't actually exist, translates out to
March 2nd.
Please search the bug database next time. This has been reported and
explained several times already.
------------------------------------------------------------------------
[2004-03-30 21:19:06] summercom at comcast dot net
Description:
------------
When using mktime and the date functions it seems that instead of
properly returning "February" the two functions used together will
return "March"
Reproduce code:
---------------
<?php
$i = 1;
do {
echo "date(\"F\", mktime(0, 0, 0, $i)); --> ".date("F", mktime(0, 0,
0, $i))."<br />\n";
$i++;
} while ($i < 13);
?>
Expected result:
----------------
date("F", mktime(0, 0, 0, 1)); --> January
date("F", mktime(0, 0, 0, 2)); --> February
date("F", mktime(0, 0, 0, 3)); --> March
date("F", mktime(0, 0, 0, 4)); --> April
date("F", mktime(0, 0, 0, 5)); --> May
date("F", mktime(0, 0, 0, 6)); --> June
date("F", mktime(0, 0, 0, 7)); --> July
date("F", mktime(0, 0, 0, 8)); --> August
date("F", mktime(0, 0, 0, 9)); --> September
date("F", mktime(0, 0, 0, 10)); --> October
date("F", mktime(0, 0, 0, 11)); --> November
date("F", mktime(0, 0, 0, 12)); --> December
Actual result:
--------------
date("F", mktime(0, 0, 0, 1)); --> January
date("F", mktime(0, 0, 0, 2)); --> March
date("F", mktime(0, 0, 0, 3)); --> March
date("F", mktime(0, 0, 0, 4)); --> April
date("F", mktime(0, 0, 0, 5)); --> May
date("F", mktime(0, 0, 0, 6)); --> June
date("F", mktime(0, 0, 0, 7)); --> July
date("F", mktime(0, 0, 0, 8)); --> August
date("F", mktime(0, 0, 0, 9)); --> September
date("F", mktime(0, 0, 0, 10)); --> October
date("F", mktime(0, 0, 0, 11)); --> November
date("F", mktime(0, 0, 0, 12)); --> December
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=27789&edit=1