Executando verificação de segurança...
2

Pra somar 1 mês, poderia ser assim:

// primeiro dia do mês atual
$current = strtotime('first day of this month midnight');

// data inicial
$data = strtotime('2023-05-01');
while ($data <= $current) { // enquanto for menor que o primeiro dia do mês atual
    // faz algo com a data (aqui vou só imprimir)
    echo date('Y-m-d', $data). "\n";
    // soma 1 mês
    $data = strtotime('+1 month', $data);
}

Consulte a documentação para mais detalhes.


Ou, usando DateTime e DateInterval:

$current = new DateTime('first day of this month midnight');
$periodo = new DateInterval('P1M'); // 1 mês
$data = new DateTime('2023-05-01');
while ($data <= $current) {
    // faz algo com a data...
    echo $data->format('Y-m-d'). "\n";
    // soma 1 mês
    $data->add($periodo);
}

O DateInterval possui um formato mais específico, baseado na norma ISO 8601, como por exemplo P2M10DT5H20S (2 meses, 10 dias, 5 horas e 20 segundos). Consulte a documentação para mais detalhes.

Carregando publicação patrocinada...