Formateando segundos en PHP

Kaos

Atención pregunta:

La duda. Tengo una $var que almacena segundos. Imaginemos q son 3600segundos. (PHP)

Esa cantidad de segundos la quiero pasar al formato:

1h. 0m.

Si fueran por ejemplo 7260 segundos mostaría:

2h. 1m.

Es más complicao de lo q parece. yo no soy capaz de sacarlo :S

Kaos

// VARIABLE TIEMPO CONTIENE EL NUMERO DE SEG.

$minutos=$variabletiempo/60;
$horas=$minutos/60;
$horasfinal=explode(".",$horas);
$hora=$horasfinal[0];

if($hora>0) $minutos-=(round($hora)*60);

echo round($horas)."h. ".round($minutos)."m. ";

/*

Pues eso es todo el codigo funcionando. Creo q lo he conseguido... al menos aun no le detecté fallos. Si alguien tiene sugerencias o metodos mas sencillos q avise :S

guner

function sec2human($secs)
{
settype($secs, 'integer');
$hours = (int) ($secs / (60 * 60));
$secs -= $hours * 60 * 60;
$mins = (int) ($secs / 60);
$secs -= $mins * 60;

return array ($hours, $mins, $secs);

}

print_r(sec2human(7260));

devuelve un array (h, m, s)
se podría hacer de forma recursiva para saber si también hay días, meses ...

Usuarios habituales

  • guner
  • Kaos