Convert from decimal or integer to hours in php

0

I have the result in decimal or integer of the hours:

Utilizador 1 = 71.5 horas
Utilizador 2 = 137 horas

I wanted to convert within php for hours, as an example:

Utilizador 1 = 71:30
Utilizador 2 = 137:00

I'm using this code in while to reach the decimal or integer hours:

$Total = 0;
while ($rows_cursos = mysqli_fetch_array($resultado_cursos)) {
  $teste = $rows_cursos['Horas Consumidas'];
  $tempo = explode(":", $teste);
  $tempototal = $tempo[0]*60 + $tempo[1];
  $Total = $Total + $tempototal; 
}
$Total = $Total/60; 
    
asked by anonymous 08.05.2018 / 14:00

2 answers

1

Simply put:

function convertHoras($horasInteiras) {

    // Define o formato de saida
    $formato = '%02d:%02d';
    // Converte para minutos
    $minutos = $horasInteiras * 60;

    // Converte para o formato hora
    $horas = floor($minutos / 60);
    $minutos = ($minutos % 60);

    // Retorna o valor
    return sprintf($formato, $horas, $minutos);
}

In your code:

$Utilizador1 = 0.5;
$Utilizador2 = 137;

echo 'Utilizador 1: ' . $Utilizador1 = convertHoras($Utilizador1) . ' horas';
echo PHP_EOL;
echo 'Utilizador 2: ' . $Utilizador2 = convertHoras($Utilizador2) . ' horas';

Result:

Utilizador 1: 00:30 horas
Utilizador 2: 137:00 horas

See working at Ideone

    
08.05.2018 / 14:03
0

I use this function:

function converterParaHora($dec)
{
    $seg = ($dec * 3600);
    $hor = floor($dec);
    $seg -= $hor * 3600;
    $min = floor($seg / 60);
    $seg -= $min * 60;
    return lz($hor).":".lz($min).":".lz($seg);
}

The idea came from here: link

    
08.05.2018 / 14:07