Y cuál es la duda?... acaso será que no funciona porque estás sumando un mes a la fecha actual en lugar de restarlo?
Qué pasa si estás en enero?, al restar un mes... este será cero y date() devolverá falso.
De hecho, la función date() es capaz de devolverte la fecha actual menos un mes, sin que tengas que usar explode(), variables temporales o hacer cálculos extra.
Revisa el manual:
www.php.net/date