Foros del Web » Programando para Internet » PHP »

funcion para mostrar minutos en, dias, horas, minutos

Estas en el tema de funcion para mostrar minutos en, dias, horas, minutos en el foro de PHP en Foros del Web. hola, soy principiante en php existe alguna funcion o conocen alguna en la que pueda mostrar los minutos que tengo almacenados en mi base de ...
  #1 (permalink)  
Antiguo 12/08/2016, 14:46
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 10 meses
Puntos: 4
funcion para mostrar minutos en, dias, horas, minutos

hola,
soy principiante en php
existe alguna funcion o conocen alguna
en la que pueda mostrar los minutos que tengo almacenados en mi base de datos, por ejemplo:

tengo 5000 minutos en la bd,

me gustaria mostrarlos asi: 3 dias, 5 horas, 2 minutos

o si tengo 70 minutos, que los muestre 1 hora, 10 minutos,


convertir los minutos en tiempo para mostrarlos de una manera mas agradable al usuario,
espero me puedan colaborar.
gracias
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 17/08/2016, 10:53
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 13 años, 3 meses
Puntos: 13
Respuesta: funcion para mostrar minutos en, dias, horas, minutos

Hola, hace un tiempo cree una clase que hace algo parecido a lo que necesitas, quizas te sirva.

Clase tiempo convertidor

Solo convierte las unidades basicas, como seg min u horas.

Saludos, espero te sirva!
  #3 (permalink)  
Antiguo 17/08/2016, 13:22
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: funcion para mostrar minutos en, dias, horas, minutos

A ver vamos por paso, antes que todo vamos a usar los 5000 minutos. ¿OK?.

Un día tiene 24 horas y cada hora 60 minutos, por lo tanto un día tiene 1440 mins. Entonces para obtener los días hay que dividir los minutos dados por 1440

5000/1440 = 3.47222..... acá nos importa solo el entero, ese entero serán los días, en este caso 3 días, luego hay que restar esos días a los minutos dados, para ello debemos multiplicar esos 3 días por los correspondientes 1440 minutos y restárselo a los mins dados: 3x1440 = 4320, luego 5000-4320 = 680. Entonces 5000 mins tiene 3 días y 680 minutos.

Ahora obtendremos las horas, aplicamos la misma idea, solo que ahora usaremos los minutos restantes dela operación anterior, entonces: una hora tiene 60 mins. por lo tanto debemos dividir esos 680 por 60: 680/60 = 11.333... nuevamente aquí nos importa solo el entero, ese entero son las horas, tenemos 11 horas, restamos esas 11 horas a los minutos, para obtener los minutos restantes, multiplicamos esas 11 horas por 60 y restamos a los minutos que nos sobra:. 11*60 = 660, luego 680-660 = 20. estos son los minutos restantes.

Por lo tanto tenemos 3 días, 11 horas y 20 minutos . Espero no haberme equivocado jajajá.

Entonces pasando la idea a código, es bien sencillo.

Código PHP:
Ver original
  1. <?php
  2.  
  3. function algunNombre($m){
  4. $d = (int)($m/1440);
  5. $m -= $d*1440;
  6.  
  7. $h = (int)($m/60);
  8. $m -= $h*60;
  9.  
  10. return array("dias" => $d, "horas" => $h, "minutos" => $m);
  11. }
  12.  
  13. $someVar = algunNombre(5000);
  14.  
  15. echo "días: ".$someVar["dias"]."<br/>";
  16. echo "horas: ".$someVar["horas"]."<br/>";
  17. echo "Minutos: ".$someVar["minutos"]."<br/>";
  18.  
  19. ?>
no se me ocurrió nombre para la función tu dale uno...

Espero no haberme equivocado, porque hice un gran párrafo para ordenar y explicar mi idea. Si me equivoqué sorry.



edité optimizé el cod.

Última edición por alvaro_trewhela; 18/08/2016 a las 11:44
  #4 (permalink)  
Antiguo 19/08/2016, 05:02
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: funcion para mostrar minutos en, dias, horas, minutos

Básicamente lo que te explico el compañero.

Otra posible solución podría ser esta:


Código PHP:
/* Recibe el tiempo en segundos */
function seg_a_dhms($seg) { 
    
$d floor($seg 86400); 
    
$h floor(($seg - ($d 86400)) / 3600); 
    
$m floor(($seg - ($d 86400) - ($h 3600)) / 60); 
    
$s $seg 60;
    return 
"$d Días, $h horas, $m minutos, $s segundos";
 }

echo 
seg_a_dhms(5000*60); 
__________________
Unset($vida['malRollo']);

Etiquetas: dias, funcion, horas, minutos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.