perche' il 31 agosto + 1 mese e' uguale al 31 settembre che non esiste e quindi succede che ti calcola 30 settembre + 1 giorno cioe' 1° ottobre.

Logica errata. Devi fissare il giorno di riferimento su cui sommare il mese e non usare la data corrente. Pensa anche al 29-30-31 gennaio..... Usa mktime()


$mese9 =date("m", mktime(0,0,0, date('m') + 2, 01, date('Y')) )