Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá.
Preciso fazer uma verificação entre data e hora. Exemplo!
Meu campo é DATETIME.
Hoje é 18/03/2011 17:00:00
No meu banco a data que está é 18/03/2011 17:10:00
Como eu faço pra fazer uma consulta se subtração dessas datas der o resultado de 10min ele lista tal tabela, se não ele lista outra.
Eu não sei na verdade como fazer o calculo entre as datas para saber se faltam 10min ou mais.
Obrigado
Bom, não da para fazer essa subtração, mas o proprio datetime faz isto. Não precisa nem criar grandes funções para isto.
Pesquisa pela classe DateTime nativa do PHP.
:thumbsup:
cara, dá uma olhada nessa função e tenta adaptar... vai que ajuda. Ela vai te mostrar a diferença entre as datas em dias, horas e minutos.
function difData($dataInicial, $dataFinal) {
@$calcDia = 0;
@$calcHor = 0;
@$calcMin = 0;
@$data = "";
$dataInicial = date("Y-m-d H:i", strtotime($dataInicial));
$dataFinal = date("Y-m-d H:i", strtotime($dataFinal));
$dataInicial = strtotime($dataInicial);
$dataFinal = strtotime($dataFinal);
$min = round(abs($dataInicial - $dataFinal) / 60, 2);
//calcular quantos dias
@$dia = ($min / 60) / 24;
$dia = intval($dia);
//echo $dia;
//calcula quantas horas
if ($dia > 0)
$calcHor = $dia * 24;
@$hora = ($min / 60);
$hora = intval($hora) - $calcHor;
//echo $hora;
//calcula os minutos
if ($dia > 0)
{
$data = $data . $dia . " dia(s) ";
$calcMin = $calcMin + ($dia * 1440);
}
if ($hora > 0)
{
$data = $data . $hora . " hora(s) ";
$calcMin = $calcMin + ($hora * 60);
}
@$min = $min - $calcMin;
if ($min > 0)
$data = $data . $min . " minutos(s) ";
return $data;
}
Veja este exemplo para trabalhar com data e hora:
// diferença entre Dias
$inicio = strtotime("2011-02-01 12:00:00") / 60 60 24; // 60 segundos 60 min 24 horas
$fim = strtotime("2011-03-10 12:00:00") / 60 60 24; // 60 segundos 60 min 24 horas
$diferenca = $fim - $inicio; // a diferença de dias passados
// diferença entre horas
$inicio = strtotime("2011-02-01 12:00:00") / 60 60; // 60 segundos 60 min
$fim = strtotime("2011-03-10 12:00:00") / 60 60; // 60 segundos 60 min
$diferenca = $fim - $inicio; // a diferença de horas passados
// para somar ou subtrair horas e datas
Pesquise mais sobre estas funções e tbm a função mktime
boa sorte.