Calcular hora entre dois campos

Olá pessoal, estou fazendo o código abaixo calcular a diferença de horas entre dois campos no formato time do mysql e gravar o resultado no campo de horas trabalhadas diarias, mas ele não grava no campo do resultado nenhum valor

$deltaTempo = sc_time_diff({hora_final_nome_escala}, “HH:II”, {hora_inicio_nome_escala}, “HH:II”);

Ai vendo mais sobre este sc_time_diff que mostra o resultado dentro de uma array, blz busquei cada resultado para colocar no campo porém o valor que ele trás é sem zero a esquerda e o campo aceita exe: 09:15 ai ele trás 9:15 e não base com a marcara do campo.

Eu estou agora com o código abaixo

$deltaTempo = sc_time_diff({hora_final_nome_escala}, “HH:II”, {hora_inicio_nome_escala}, “HH:II”);

$deltaHoras = $deltaTempo[0] ; // Recebe horas da matriz
$deltaMinutos = $deltaTempo[1]; // Recebe minutos da matriz
{hora_trabalhada_dia} = $deltaHoras.":".$deltaMinutos;

Ele até pega os valores das horas e minutos porém se houver como resultado por exemplo 07:09 ele trás par ao campo 7:9, como manter o resultado fiel ?

$deltaHoras = $deltaTempo[0] <10?'0'.$deltaTempo[0] :$deltaTempo[0]   ;
$deltaMinutos = $deltaTempo[1]<10?'0'.$deltaTempo[1] :$deltaTempo[1]   ;

ou pode usar o str_pad do php

$deltaHoras = str_pad($deltaHora, 2, ‘0’, STR_PAD_LEFT);
$deltaMinutos = str_pad($deltaMinutos , 2, ‘0’, STR_PAD_LEFT);
{hora_trabalhada_dia} = $deltaHoras.":".$deltaMinutos;

1 Curtida

Haroldo, não funcionou, ele não joga o valor para o campo de destino, quando dou um echo ele me apresenta valores que não tem nada a ver com o lançado.

Teria que funcionar sim, não vejo porque não funcionaria.

Quando coloco o código que postou, ele nem executa o form, da erro, mas se compilo não aparece erro nenhum.

Não estou entendendo nada, a matriz 0 tinha que me retornar hora, mas me retorna os minutos, ai a hora fica tudo zero sempre, o retorno do resultado esta todo embolado e não tem motivo para isso, até tentei jogar as matrizes para uns campos para ver como estava os valores e ele não joga nada e não sei mais o que pode estar errado affff

não sei por que não usa o strpad… tenta ai…

$HoraInicial = "9:09";
$HoraFinal = "16:00";
$deltaTempo = $this->nm_data->Dif_Horas($HoraFinal, "HH:II", $HoraInicial, "HH:II");
$deltaHoras = str_pad($deltaTempo[0], 2, '0', STR_PAD_LEFT);
$deltaMinutos = str_pad($deltaTempo[1] , 2, '0', STR_PAD_LEFT);
echo "<br>Hora Final : $deltaHoras : $deltaMinutos<br>";

Rapaz esse sim funcionou que é uma beleza, ficou perfeito, só precisei jogar o valor das variaveis para o campo, muito obrigado Jair, que até no nome impôe respeito kkkkk

Obrigado Jair, utilizei sua dica numa rotina e funcionou beleza !!!

Jair, obrigado.
O SC tem problemas na sc_time_diff mas pelo visto há tempos.
Não consegui subtrair hora início - hora término, dá erro igual deste tópico.
Mas com tua ajuda resolveu o problema.
Muito agradecido por contribuir.