Foros del Web » Programando para Internet » PHP »

¿cómo podría obtener los minutos trancurridos entre 2 fechas?

Estas en el tema de ¿cómo podría obtener los minutos trancurridos entre 2 fechas? en el foro de PHP en Foros del Web. Bueno, ese es el dilema. Primero pensé en hacerlo con javascript pero creo que en PHP debe haber alguna función que lo haga más sencillo. ...
  #1 (permalink)  
Antiguo 19/01/2011, 06:55
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
¿cómo podría obtener los minutos trancurridos entre 2 fechas?

Bueno, ese es el dilema.
Primero pensé en hacerlo con javascript pero creo que en PHP debe haber alguna función que lo haga más sencillo. Aunque buscando en las funciones de fecha y hora de un manual de PHP no he visto nada al respecto.
Resulta que tengo que calcular los minutos trancurridos entre 2 fechas(con horas y minutos incluidos) con este formato(dia/mes/año horas:minutos). Las fechas no las saco de una base de datos, sino que el comportamiento es el siguiente:
-Tengo mi form con un input para la fecha inicial y 2 combos para la hora y los minutos de esa fecha. Luego lo mismo para la fecha final.
-Tengo también un input en el ke debe aparecer la duración en minutos entre las 2 fechas al clickar en este campo.¿Cómo? con ajax-xajax-

Pero ahora me falta la función para hacer el cálculo...Podríais ayudarme??

Mil gracias!!
  #2 (permalink)  
Antiguo 19/01/2011, 07:05
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ¿cómo podría obtener los minutos trancurridos entre 2 fechas?

Aunque ya se ha hablado infinitas veces sobre el tema

Código PHP:
$fecha1 '19/01/2011 10:00';
$fecha2 '19/01/2011 10:05';

function 
getMinuts($fecha1$fecha2)
{
    
$fecha1 str_replace('/''-'$fecha1);
    
$fecha2 str_replace('/''-'$fecha2);
    
$fecha1 strtotime($fecha1);
    
$fecha2 strtotime($fecha2);
    return 
round(($fecha2 $fecha1) / 60);
}
echo 
getMinuts($fecha1$fecha2); 
saludos.
  #3 (permalink)  
Antiguo 19/01/2011, 07:06
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: ¿cómo podría obtener los minutos trancurridos entre 2 fechas?

Tienes dos fechas, para compararlas debes sacar el timestamp unix de cada una, que es un numero en segundos, para ello debes usar la función strtotime, mira los ejemplos y los comentarios que te ayudaran a saber que sintaxis poner en el parametro.

Con esa función ya podrás tener el timestamp unix, despues a la fecha mas reciente le restas la antigua (los timestamps, son integers, asique se pueden restar), y entonces tendras la diferencia de las fechas en segundos, lo divides entre 60 para sacar los minutos, y ya tienes los minutos transcurridos entre las dos fechas.

Un saludo

EDIT: Hidek se me adelanto con el código que yo he descrito
  #4 (permalink)  
Antiguo 20/01/2011, 02:58
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: ¿cómo podría obtener los minutos trancurridos entre 2 fechas?

Muchas gracias chic@s.
Ha funcionado a la perfección.
Luego quería convertir estos minutos en unidades de tiempo(cada x minutos es una unidad) con 2 decimales redondeados al alza. Os muestro cómo lo hice así tenemos el ejemplo completo.
Código PHP:
Ver original
  1. $minutos = round(($fecha2 - $fecha1) / 60) ;
  2. //primero multiplico el número de minutos por 100
  3. $minutos_multiplicados = $minutos * 100
  4. //para después calcular las unidades con 2 decimales
  5. $unidades = (round($minutos_multiplicados / minutos_que_componen_la_unidad) )/ 100;

De nuevo gracias y hasta la próxima!!

Etiquetas: fechas, 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 15:03.