Возможный дубликат:
PHP DateTime:: изменить время добавления и вычитания
У меня есть дата начала (т.е. 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, которая может это сделать, или я должен сам ее кодировать? Может быть, я просто пропустил параметр или что-то в этом роде?