Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas para subtrair horas


alexandremanowar

Pergunta

Pessoa criar um pequeno cóigo usado para subtrair horas, enquanto eu usar horas que cheguem até por exemplo 24 horas ele funciona mas se eu uso masi que isso não rola, por exemplo:

$hora1 = 800:00:00
$hora2 = 02:00:00

if(strtotime("$hora1") >= strtotime("$hora2"))
{
  //ação 1
}
else
{
  //ação 2
}
Nesse código ele deveria executar a ação 1 mas esta entrando na ação 2 ou seja ele esta considerando que 800:00:00 é menor que 01:00:00, porque? Outro problema é para subtrair se eu tentar subtair dessa forma:
$diferenca = strtotime("$hora1") - strtotime("$hora2");
$hora = floor($diferenca / 3600); // valor de horas inteiras
$diferenca %= 3600; // subtrai as horas inteiras da diferença
$minuto = $diferenca / 60; // minutos que restaram

$HoraAtual = $horaBanco . ":" . $minutoBanco;

echo "$HoraAtual";

O valor também vem incorreto, como devo proceder para corrigir esses problemas?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom dia

Cara valeu pela atenção, na verdade estou lendo a api do php no próprio site mas não estou conseguindo usar o mktime, será que vocÊ poderia me explicar como usá-lo nesse caso? Estou lendo mas não estou entendendo se você me ajudar fico grato.

Link para o comentário
Compartilhar em outros sites

  • 0

E ae pessoal beleza

consegui fazer o calculo, não use exatamente o strtotime ou o mktime porque não consegui, então fiz manualmente o calculo e ficou assim:

$hora1 = "800:00:00";
$hora2 = "03:00:00";


// Faz o calculo
$x = explode(':', $hora1);
$horas = $x[0]; // Pega as horas (2)
$minutos =  $x[1]; // Pega os minutos (10)
$total = ($horas * 60) + $minutos; // Calcula o total de minutos                     

$x2 = explode(':', $hora2);
$horas2 = $x2[0]; // Pega as horas (2)
$minutos2 =  $x2[1]; // Pega os minutos (10)
$total2 = ($horas2 * 60) + $minutos2; // Calcula o total de minutos                    
$total3 = $total - $total2;
                    
                    
        
$resultado = $total3; // Total de minutos, no caso 260
$horas_finais = (int)($resultado / 60); // Calcula as horas                     
$minutos_finais = str_pad((int)($resultado % 60), 2, "0", STR_PAD_LEFT); // Calcula os minutos finais
        
echo "$horas_finais:$minutos_finais <br><br>";

if($total >= $total2)
{
    echo "1";
}
else
{
    echo "2";
}

Se alguém conseguir fazer usando o strtotime mktime posta aqui por favor

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...