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