Je trouve que la fonction mtkime() fonctionne très bien pour cela :
$start_date="2021-10-01";
$start_date_plus_a_month=date("Y-m-d", mktime(0, 0, 0, date("m",strtotime($start_date))+1, date("d",strtotime($start_date)), date("Y",strtotime($start_date))));
résultat : 2021-11-01
J'aime soustraire 1 du "jour" pour obtenir "2021-10-31", ce qui peut être utile si vous souhaitez afficher une plage de 12 mois, par exemple du 1er octobre 2021 au 30 septembre 2022.
$start_date_plus_a_year=date("Y-m-d", mktime(0, 0, 0, date("m",strtotime($start_date))+12, date("d",strtotime($start_date))-1, date("Y",strtotime($start_date))));
résultat : 2022-09-30