Applying an interval

<?php
$d = new DateTimeImmutable( 'Apr 20th, 2018' );
echo $d->format( "l Y-m-d\n" );

$i = DateInterval::createFromDateString( "next weekday" );
echo $d->add( $i )->format( "l Y-m-d\n" );

$i = DateInterval::createFromDateString( "3 months 10 days" );
echo $d->sub( $i )->format( "l Y-m-d\n" );
?>
Result:

Friday 2018-04-20

Monday 2018-04-23

Wednesday 2018-01-10