I hope this clears up some of the behaviour of PHP's Date/Time handling.For more information on Date/Time Programming with PHP, please refer to my book "php|architect's Guide to Date and Time Programming" that is available through Amazon. I'm not sure what the PHP team has been smoking again, but evidently it's some great stuff.
This behavior that you're describing here would be more adequately described as "a month from now". This is another great example of developers being too pedantic for their own good; you you'll get bugs filed against this from the time it's implemented until it's either corrected or deprecated.Do you realize how many man-hours are going to be wasted (and accordingly, money), not only external to the PHP team but also within the PHP team, due to this 'non-bug'?I think it's almost a crime against programming to commit code that one knows will cause widespread confusion and misunderstanding amongst its users.support is to provide a rich and consistent language. You might not like it, but you can not argue that the behaviour is not correct.It is correct because it explicitly has been designed like how it is (following some GNU specification).
PHP 5.3 adds a whole new range of 1: Which does not make it any easier for new users. 3: Am I the only one that sees the irony in this statement?
Derick, please don't get me wrong here, I'm not trying to insult you (and I'm sorry if I have); rather, I should be thanking you for pointing out this addition to the language and giving background info on it (thank you). The manual for strtotime for example says 'Parse about any English textual datetime description'.
The english textual interpretation of 'next month' should be february. Since we can't have dates without a day (why can't we by the way?
humans are capable of dealing with day less date expressions), I'd say the 'weg van de minste verbazing' as we say in dutch would probably be the last day of the month. your submit button says 'sumbit' ;-) I wonder if the people complaining realize that this is not a PHP-specific thing.
You should probably read this: For better or worse, this is the UNIX convention for adding and subtracting time intervals (not just months).
Your command line date tool on your UNIX box behaves exactly the same. @Derick: in the comments you say no fix is required because there is no bug. A developer, after all, it is a still a human being.