Depending on what your use case is, adding months might or might not give you the correct result.
// Prints "2024-03-02" instead of "2024-02-29"
print Date::fromString('2024-01-31T10:00:00')
->add(new DateInterval('P1M0D')
->format('Y-m-d');
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateTime::add -- date_add — Modifies a DateTime object, with added amount of days, months, years, hours, minutes and seconds
Object-oriented style
Procedural style
Adds the specified DateInterval object to the specified DateTime object.
Like DateTimeImmutable::add() but works with DateTime.
The procedural version takes the DateTime object as its first argument.
object
Procedural style only: A DateTime object returned by date_create(). The function modifies this object.
interval
A DateInterval object
Returns the modified DateTime object for method chaining.
Depending on what your use case is, adding months might or might not give you the correct result.
// Prints "2024-03-02" instead of "2024-02-29"
print Date::fromString('2024-01-31T10:00:00')
->add(new DateInterval('P1M0D')
->format('Y-m-d');