You can try this function to add months to the datetime object
function addMonth(\DateTime $date, $monthToAdd) { $year = $date->format('Y'); $month = $date->format('n'); $day = $date->format('d'); $year += floor($monthToAdd / 12); $monthToAdd = $monthToAdd % 12; $month += $monthToAdd; if ($month > 12) { $year ++; $month = $month % 12; if ($month === 0) { $month = 12; } } if (! checkdate($month, $day, $year)) { $newDate = \DateTime::createFromFormat('Yn-j', $year . '-' . $month . '-1'); $newDate->modify('last day of'); } else { $newDate = \DateTime::createFromFormat('Yn-d', $year . '-' . $month . '-' . $day); } $newDate->setTime($date->format('H'), $date->format('i'), $date->format('s')); return $newDate->format('Ym-d'); } echo addMonth(new \DateTime('2015-01-30'), 1);
source share