我需要在PHP中创建函数,让我在给定的日期时间单位上升/下移.具体来说,我需要能够从当前月份进入下一个/上个月.
我想我可以使用DateTime :: add/sub(P1M)来做到这一点.然而,当试图获得前一个月时,如果日期值= 31-看起来它实际上试图倒数30天而不是递减月值,则会变得混乱!:
$prevMonth = new DateTime('2010-12-31');
Run Code Online (Sandbox Code Playgroud)
尝试减少月份:
$prevMonth->sub(new DateInterval('P1M')); // = '2010-12-01'
$prevMonth->add(DateInterval::createFromDateString('-1 month')); // = '2010-12-01'
$prevMonth->sub(DateInterval::createFromDateString('+1 month')); // = '2010-12-01'
$prevMonth->add(DateInterval::createFromDateString('previous month')); // = '2010-12-01'
Run Code Online (Sandbox Code Playgroud)
这肯定是错误的行为.有人有任何见解吗?谢谢-
注意: PHP版本5.3.3