Ir ao conteúdo

Calcular a diferença entre dateTime (PHP)


fummyga

Posts recomendados

Postado

Bom Dia Pessoal,

estou precisando da ajuda de vocês, preciso fazer um calculo de diferença de dateTime, pesquisei bastante na internet como fazer isso, e tem bastante coisa, mas muitos não funcionam como eu quero, pois fazem a diferença apenas entra as horas, não considerando os dias, e caso passe de 24h já não funciona mais.

preciso saber quantas horas, minutos e segundos se passaram, desde o dia X até hoje.

Alguem ai pode me ajudar?

Desde já agradeço a força!

  • Moderador
Postado

Isso é fácil de resolver.. veja este código:


<?php
$dataFuturo = "2013-02-10 17:30:30";
$dataAtual = "2012-01-01 15:18:45";

$date_time = new DateTime($dataAtual);
$diff = $date_time->diff( new DateTime($dataFuturo));
echo $diff->format('%y ano(s), %m mês(s), %d dia(s), %H hora(s), %i minuto(s) e %s segundo(s)');
?>

Basicamente é usado a classe DateTime nativa do php

Postado

Obrigado pela ajuda Dif. Mas como eu poderia fazer para retornar a diferença em horas?

Ex: 89h:22m:30s

Acho que se vocês souberem qual é a aplicação fica mais fácil me ajudar.

O cliente quer que haja promoções relampago no site de compras dele, por exemplo, às 00:00 do dia 8 vai iniciar uma promoção de 72h, no site haverá um contador regressivo semelhante a esses de sites de compras coletivas.

Sendo assim quando um usuario entrar no site, eu vou precisar montar esse contador, por isso criei um dateTime para gravar o inicio da promoção, ai eu teria que calcular quantas horas, minutos e segundos, ainda falta para terminar a promoção.

Baseando-se na quantidade de horas que irá durar a promoção, que pode variar, por isso criei um campo para guardar quantas horas irá durar a promoção.

Desde já agradeço a mão!

  • Moderador
Postado

Bom, Basicamente o codigo que te passei ali acima, faz o calculo da diferença mas não é regressivo.

Neste caso.. de uma pesquisada no uso do plugin jQquery Countdown(de uma pesquisada no google). a maioria dos sites de compras coletivas usam ele, inclusive eu usei ele no meu TCC da faculdade.

Basicamente o plugin faz todo o calculo para você.. o que tens que entender é como resgatar o dado da tabela do banco, e passar ao jquery a data e a hora.

O plugin permite disparar eventos quando atinge o limite dele.

Note que tudo é baseado na data atual do seu sistema e a data cadastrada no banco. tente impementar.. e posta aqui pra nos esclarecermos as suas duvidas.

Postado

boa tarde,

a parte de fazer o contador regressivo eu até já tinha feito, meu problema mesmo era fazer a diferença em horas, mas fiz umas contas aqui e deu certo, seu código me ajudou muito, fiz:

((data_inicial + tempo_promoção) - hoje) = tempo restante,

ai usei o código que voce me passou para mostrar tudo em horas, obrigado pela sua imprescindível ajuda!

  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!