Ao manipular datas, torna-se essencial evitar situações em que o final do mês seja excedido inadvertidamente. Este artigo explora uma abordagem confiável para adicionar meses a uma determinada data, garantindo que ela permaneça dentro dos limites do mês de destino.
Dada uma função PHP, o objetivo é adicionar um determinado número de meses até uma data sem exceder o final do mês. A função deve ajustar o resultado para o último dia do mês se a adição levar a uma repercussão.
Para obter a funcionalidade desejada, você pode utilizar as seguintes etapas:
function add($date_str, $months)
{
$date = new DateTime($date_str);
$start_day = $date->format('j');
$date->modify(" {$months} month");
$end_day = $date->format('j');
if ($start_day != $end_day)
{
$date->modify('last day of last month');
}
return $date;
}
// Sample tests
$result = add('2011-01-28', 1); // 2011-02-28
$result = add('2011-01-31', 3); // 2011-04-30
$result = add('2011-01-30', 13); // 2012-02-29
$result = add('2011-10-31', 1); // 2011-11-30
$result = add('2011-12-30', 1); // 2011-02-28
Ao seguir esta abordagem, você pode adicionar meses às datas com segurança em PHP, ao mesmo tempo em que segue as restrições do final do mês, garantindo que seus resultados representem com precisão o prazo pretendido.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3