"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como calcular com eficiência o número de meses entre duas datas em PHP?

Como calcular com eficiência o número de meses entre duas datas em PHP?

Publicado em 2024-11-08
Navegar:174

How to Efficiently Calculate the Number of Months Between Two Dates in PHP?

Encontrar a contagem de meses entre datas de maneira eficiente

Um desafio comum de programação é determinar o número de meses entre duas datas. Em PHP, existem várias abordagens para resolver esse problema.

Usando a classe DateTime (PHP >= 5.3):

A classe DateTime introduzida no PHP 5.3 fornece métodos convenientes para manipulação de data. Para calcular a diferença do mês:

$d1 = new DateTime("2009-09-01");
$d2 = new DateTime("2010-05-01");

$diff = $d1->diff($d2);
echo $diff->m; // 4
echo $diff->m   ($diff->y * 12); // 8

Usando carimbos de data/hora Unix:

Para versões PHP abaixo de 5.3, você pode utilizar carimbos de data/hora Unix:

$d1 = strtotime("2009-09-01");
$d2 = strtotime("2010-05-01");

echo (int)abs(($d1 - $d2) / (60 * 60 * 24 * 30)); // 8

Loop personalizado:

Se nem DateTime nem carimbos de data/hora Unix puderem ser usados, considere um loop personalizado que incremente um contador em um para cada mês adicional:

$d1 = strtotime("2009-09-01");
$d2 = strtotime("2010-05-01");
$i = 0;

while (($d1 = strtotime(" 1 MONTH", $d1)) 

Precisão e confiabilidade:

Observe que a abordagem de carimbo de data/hora Unix assume um mês de 30 dias, o que pode ser impreciso. Para maior precisão, é recomendado usar DateTime::diff se possível ou confiar em seu banco de dados para cálculos.

Tutorial mais recente Mais>

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