Una prueba sumando un dia mas que lo necesario para el fin de mes:
Código PHP:
$periodo = 12;
$fecha = DateTime::createFromFormat('dmY|', '20012016', new DateTimeZone('UTC') );
date_add($fecha, date_interval_create_from_date_string($periodo.' days'));
echo date_format($fecha, 'd-m-Y');
Eso debería darte el 01/02/2016