如何在不跳过的日期添加1个月,即2月
可能的重复:
PHP 日期时间::修改添加和减去月份
我有一个开始日期(即2011-01-30),并希望增加1个月。
问题在于定义什么是月。因此,如果我使用以下代码:
$d1 = DateTime::createFromFormat('Y-m-d H:i:s', '2011-01-30 15:57:57');
$d1->add(new DateInterval('P1M'));
echo $d1->format('Y-m-d H:i:s');
我得到以下结果: 2011-03-02 15:57:57
问题是,我需要它来使用以下规则:
- 如果我添加1个月,它将只在月份部分添加1并离开日部分(2011-01-15将变成2011-02-15)
- 如果该日不存在,我们将在该月结束,我们采取它的最后一天(2011-01-30将变为2011-02-28)
php中是否有一个通用函数可以做到这一点,或者我必须自己编写代码吗?也许我只是缺少一个参数或其他东西!?