为什么不是错误:
当前行为是正确的。内部发生以下情况:
+1 month
将月份数(最初为1)增加1。这就是约会2010-02-31
。第二个月(2月)在2010年只有28天,因此PHP会通过自动计算从2月1日开始的天数来自动更正此问题。然后,您将在3月3日结束。
如何获得想要的东西:
要获得您想要的东西,请执行以下操作:手动检查下个月。然后加上下个月的天数。
希望您可以自己编写代码。我只是在做什么。
PHP 5.3方式:
要获得正确的行为,可以使用PHP 5.3的新功能之一,该功能引入了相对时间节
first day of。该节可与结合使用
nextmonth,
fifth month或
+8 months转到指定月份的第一天。
+1month您可以使用以下代码来代替下个月的工作,而不用执行以下操作:
<?php$d = new DateTime( '2010-01-31' );$d->modify( 'first day of next month' );echo $d->format( 'F' ), "n";?>
该脚本将正确输出
February。PHP处理此
first day of next month节时,将发生以下情况:
next month
将月份数(最初为1)增加1。这使日期为2010-02-31。first day of
将日期设置为1
,得出日期为2010-02-01。



