[PHP] Converter segundos em H : M : S

Boas pessoal da Zwame.

É assim eu tenho uma variável onde me guarda os segundos de um certo tempo. Eu queria depois converter esses segundos em Horas, minutos e segundos.

Por exemplo 3600 segundos é 01 : 00 : 00. Certo?

Pronto basicamente queria uma função que convertesse isso assim. Alguém conhece? Se sim irei ficar muito agradecido. Já pesquisei e tudo e não encontro. :sad:


Um abraço.
 
1. fazes a divisão inteira do número por 3600 e tens o número de horas
2. divides o resto da conta "1" por 60 e tens o número de minutos
3. o resto da conta "2" dá-te o número de segundos
 
Eu uma vez fiz uma em c que convertia uma valor em dias para o valor em anos, meses, dias.

É parecido, mas agora não encontro...:mad:

edit: O Mitch já tratou de te ajudar :)
 
Desculpem minha ignorância, e para Converter minutos em H:M:S?
Código:
var_dump(time_converter(160.25));

function time_converter($minutes) {

    $result['hours'] = 0;
    $result['seconds'] = 0;

    if ($minutes >= 60) {
        $hours = $minutes / 60;
        $result['hours'] = floor($minutes / 60);
        $rest = $hours - floor($hours);
        $minutes = $rest * 60;
    } else {
        $result['minutes'] = floor($minutes);
    }

    if (!empty($minutes - floor($minutes))) {
        $result['seconds'] = floor(($minutes - floor($minutes)) * 60);
        $result['minutes'] = floor($minutes);
    }

    if (empty($result['minutes'])) {
        $result['minutes'] = 0;
    }

    $result['seconds'] = $result['seconds'] >= 10 ? $result['seconds'] : '0'. $result['seconds'];
    $result['minutes'] = $result['minutes'] >= 10 ? $result['minutes'] : '0'. $result['minutes'];
    $result['hours'] = $result['hours'] >= 10 ? $result['hours'] : '0'. $result['hours'];


    $result['compiled_time'] = $result['hours'] . ':' . $result['minutes'] . ':' . $result['seconds'];
    return $result;
}
 
Back
Topo