Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera.. me pintou uma dúvida.. está bem difícil, pesquisei muito e não consigo chegar a uma conclusão, quero calcular o seguinte, Exemplo:
Data Atual: 25/06/2018 04:13
Data de Expiração: 25/06/2018 04:10 (Notem os 3 minutos a menos)
Essa condição já deveria retornar o Status como inativo, entretanto não faz a ação.. Mas se eu colocar uma data menor que 25/06, exemplo: 24/06 ele retorna certinho como Inativo, meu problema é que não considera os minutos, com relação a data e hora atual, segue o código:
<?php
$dt_atual = date("d/m/y H:i"); // data atual
$timestamp_dt_atual = strtotime($dt_atual); // converte para timestamp Unix
$dt_expira = $_SESSION[ 'dados_user' ][ 'dataexpiracao' ]; // data de expiração da conta
$timestamp_dt_expira = strtotime($dt_expira); // converte para timestamp Unix
// data atual é maior que a data de expiração
if ($timestamp_dt_atual > $timestamp_dt_expira) // true
echo "<b><font color=\"#FF0000\">Inativo</font></b>"; echo "<b><font color=\"#228B22\">Ativo</font></b>";
?>
A data informa corretamente, somente os minutos que ele não considera, alguém poderia dar uma luz?Apenas como complemento. A biblioteca DateTime aceita comparação strict, ou seja, você pode comprar diretamente dois objetos utilizando operadores básicos de comparação:
$dt_atual = new DateTime('2018-06-25 04:13:23');
$dt_expira = new DateTime('2018-06-25 04:10:26');
if ($dt_atual < $dt_expira)
{
echo "Ativo";
}
else
{
echo "Inativo";
}Obrigado Bruno e Gabriel!
Muito boas as dicas! Resolvido!!!
Use o Datetime() pra isso.
0 days, 00 hours, 02 mins, 57 segs
Pra identificar se a hora ultrapassou o tempo limite, você pode usar assim:
else$interval->format('%R'); // retorna "-" ou "+"
Nesse exemplo ele também considera os segundos pra atestar a precisão, que nesse caso é uma expiração de 1 segundo.
Link do Datetime() na documentação:
http://php.net/manual/pt_BR/datetime.diff.php