Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

manolegal

Calcular número de meses entre duas datas

Recommended Posts

Olá amigos.

Preciso descobrir o número total de meses existentes entre 02 datas.

Tenho o seguinte código:

$date = new DateTime($data_nascimento); // Data de Nascimento
$idade_acompanhamento = $date->diff(new DateTime($data_acompanhamento_calculo)); // Data do Acompanhamento
$idade_acompanhamento_mostra = $idade_acompanhamento->format('%Y Anos, %m Meses e %d Dias');

Este código me tras a diferença em Anos, meses e dias.

Como faço para que retorne o total de meses entre as datas?

Pesquisei muito, mas não consegui solucionar o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar a função strtotime() para isso, criando o timestamp dessas datas e depois calcular o número de meses baseando-se na quantidade de segundos entre as duas datas.

$data_ini  = '2013-08-01';
$data_end  = '2015-08-16';
 
$dif = strtotime($data_end) - strtotime($data_ini);
 
$meses = floor($diferenca / (60 * 60 * 24 * 30));
 
echo $meses;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá fsantostupi

Obrigado pela ajuda.

Funcionou, porém há um pequeno detalhe no meu projeto.

Pegando por exemplo as datas:

$data_ini  = '2001-03-21';
$data_end  = '2014-03-21';

O resultado foi 158, porém imagino que deveria/precisaria ser 156 (13 anos completos) pois seria a idade em meses da pessoa. Pela função que você colocou imagino que esteja contando os meses existentes entre as datas, mas eu precisaria "dos meses completos".

Não sei se há outra forma para aplicar ao que preciso. Fico no aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo é uma questão de usar a cabeça... se você tem o exemplo que te retorna os anos e os meses restantes, então basta pegar a quantidade de anos, multiplicar por 12 e somar com os meses restantes.

 

<?php
$data_nascimento = '2001-03-21';
$data_acompanhamento_calculo = '2014-04-21';


$date = new DateTime($data_nascimento); // Data de Nascimento
$idade_acompanhamento = $date->diff(new DateTime($data_acompanhamento_calculo)); // Data do Acompanhamento
$idade_acompanhamento_mostra_anos = $idade_acompanhamento->format('%Y')*12;
$idade_acompanhamento_mostra_meses = $idade_acompanhamento->format('%m');


$total_meses = $idade_acompanhamento_mostra_anos+$idade_acompanhamento_mostra_meses;


echo $total_meses;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.