Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
Alguém conhece alguma função para calcular a diferença entre duas datas e apresente no formato 6 dia(s) 21h 3min?
pegue as duas datas, e converta para time, usando a função strtotime, chame de data1(mais antiga) e data2(mais recente), por exemplo...
aí, subtraia a data2 da data1, pegue esse valor e lance dentro de um date, assim:
$resultadodaSubtração
$novadata = date("Y-m-d H:i:s", $resultadodaSubtração);
aí, o formato da data você escolhe o melhor....
exemplo: $novadata = date("d/m/Y", $resultadodaSubtração);//so mostra o dia, mes e ano no formato "XX/XX/XXXX"
é facil...tenta aí, depois avise se deu certo!!!
um abraço e boa sorte!!
Obrigado Horario, mas ainda não de certo, não tenho muito conhecimento em mecher com data
$data1 = strtotime (date ('Y-m-d'));
$data2 = strtotime('2013-02-13');
$resultadodaSubtracao = $data2-$data1;
$novadata = date("Y-m-d H:i:s", $resultadodaSubtracao);
Me retornou 1970-01-20 21:00:00, se puder me ajudar com isso agradeceria
Pessoal, não vamos reinventar a roda se ela já existe. Usem a biblioteca DateTime. Já não é de hoje que falo sobre respostas que utilizam funções date.
A biblitoeca DateTime foi implementada na versão 5.2 do PHP, que foi lançado em 2006. Servidores com PHP >= 5.3 possuem suporte total a DateTime, se vocês utilizam servidores mais antigos, sugiro se atualizarem, PHP 5.3 foi lançado em meados de 2009.
Com a biblioteca DateTime, tudo ficou mais fácil, não necessitam de todas essas conversões que vejo.
$dataAtual = new DateTime();//data atual
$data = new DateTime('2013-02-13');
$diferenca = $dataAtual->diff($data);
echo $diferenca->format('%a dias, %h horas e %i minutos');
saída:
19 dias, 7 horas e 50 minutos
A saída você pode definir conforme sua necessidade. A precisão de horas/minutos, vai depender da configuração do seu servidor. Mas esses detalhes são ínfimos.
Simplificou demais Gabriel. Obrigado por esta explicação e obrigado a todos que tentaram me ajudar.
Olá Pessoal,
Tive problemas com a função DateTime no meu servidor. Acredito que a versão do php não suporta está função.
Existe algum outro modo de fazer?
Bom... Se você quer calcular datas, veja se isso ajuda. Na hora de imprimir o resultado basta usar a função date:
echo 'Faltam '.date("d").' dias, '.date("H").' horas e '.date("i").' minutos';