Comparison of Time in Approach

-1

How can I make a script for if current time is arriving at the scheduled time to do something

  Exemplo

  date_default_timezone_set('America/Sao_Paulo');
  $hora_atual = date('H:i'); //11:45 Hora Atual      
  $hora_marcada              // 12:00 hora marcada vem do banco 

  se horario atual estiver faltando <= 15 minutos para a hora marcada{

  exemp .echo falta 15 minutos para saida  
  }
    
asked by anonymous 10.06.2016 / 16:44

1 answer

1

I would not answer because I'm on my cell phone. But I decided to respond.

You can use the class DateTime (maid recommended), or time() :

<?php
    $inicio = time(); #pega o tempo atual em segundos (timestamp)
    $fim = $inicio + (15 * 60); #acrescenta 15 minutos ao tempo anterior

    $x = $fim - $inicio; #pega quanto falta em segundos
    $x = $x / 60; # transforma em minutos 

    echo "Faltam {$x} minutos";

    #pode comparar os valores, por exemplo:
    echo ($fim < time()) ? "Foi liberado" : "Ainda nao esta liberado";

     #olho se o numero de segundos do fim é menor que o tempo atual, se sim quer dizer que o tempo em fim ja se tornou passado

Of course, the example is always going to say that 15 minutes to go, so the start and end variables should normally be stored in cookies or session.

It should work, not tested, it was in the mind kk

Edited

Now, with the more or less clear question, it solves:

<?php
    date_default_timezone_set('America/Sao_Paulo');

    $fim = '16:30:00';
    $inicio = date("H:i:s", time());
    echo "inicio: {$inicio}<br>";
    echo "fim: {$fim}<br>";

    $arrayFim = explode(":", $fim);
    $arrayInicio = explode(":", $inicio);

    $horas = $arrayFim[0] - $arrayInicio[0];
    $minutos = $arrayFim[1] - $arrayInicio[1];
    $segundos = $arrayFim[2] - $arrayInicio[2];
    if($segundos < 0)
    {
        if($minutos > 0)
        {
            $minutos --;
            $segundos = 60 - $arrayInicio[2];
        }
    }
    echo "<br>horas: {$horas}<br>";
    echo "minutos: {$minutos}<br>";
    echo "segundos: {$segundos}<br>";

    if($horas <= 0 and $minutos <= 0 and $segundos <= 0)
        echo "<br>Expirado";
    else
        echo "<br>Nao expirou";

Next, clearly state the doubt:)

    
10.06.2016 / 17:08