ID:               22486
 Comment by:       tuxedobob at mac dot com
 Reported By:      drwav at hotpop dot com
 Status:           Bogus
 Bug Type:         Date/time related
 Operating System: Win32
 PHP Version:      4.2.3
 New Comment:

Yes, it would be more correct. The month after January is Feburary. It
follows that adding a month to a day in January should get you a day in
February. Likewise, adding a month to March 31 currently gets you May
1st, but should result in April 30.

strtotime clearly isn't simply tacking on some number of days, since a
month after 1/1 is 2/1 and 2/1 + 1 month is 3/1. It can even handle
leap years correctly. It should really do a bit more thinking with
regards to this.

As for your example, either you're just being a prick, or you've been
watching a little too much Pirates of Penzance.


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

[2003-02-28 23:38:30] [EMAIL PROTECTED]

But would choosing Feb.28 really be any more correct?  If I told you on
January 30 that I would come back in exactly one month to beat the crap
out of you, when would you think I would show up?

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

[2003-02-28 23:34:53] drwav at hotpop dot com

when strtotime is asked to create a timestaml +1 month in the future,
and is given a timestamp that happens on a day that does not exist in
the next month. A timestamp a few days beyond one month in the future
is created.

Example:

<?php
$now = strtotime("2003-01-30");
$nextmonth = strtotime("+1 month", $now);

print date("Y-m-d", $nextmonth);
?>

the output from this script is

2003-03-02

since February has no 30th day, apparently strtotime just adds 30 days
to whatever timestamp it is given to go one month in the future, hence
March 2nd.

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


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

Reply via email to