Ver Mensaje Individual
  #14 (permalink)  
Antiguo 12/03/2010, 08:24
Avatar de mdromed
mdromed
 
Fecha de Ingreso: septiembre-2009
Mensajes: 389
Antigüedad: 14 años, 7 meses
Puntos: 8
Respuesta: Restar 2 fechas (pero sin la hora)

Cita:
Iniciado por Tokkara Ver Mensaje
Pero tienes el timestampo de las fechas o no.

Si tienes el timestamp solo tienes que restar ambos y dividirlo por 24 horas.

Código PHP:
Ver original
  1. function dias_diferencia($fecha1, $fecha2)
  2. {
  3.  $res = $fecha1-$fecha2;
  4.  $segs_dia = 24*3600;
  5.  $dias = (int) $res/$seg_dias; //Extraemos los diás que hay de diferencia
  6.  $dias += $res MOD $seg_dias != 0 ? 1 : 0; //Si tiene resto es que son horas distintas. Entonces le añadimos+1
  7. }
El operador en PHP para extraer el resto es %. Pero este caracter se visualiza mal dentro de las etiquetas HIGHLIGHT. Así que pongo MOD.


Ahora si las tienes en el formato dd/mm/aaaa hh:mm:ss. Lo único que hay que hacer es jugar con la cadena. Y retirar la hora de la fecha.


Código PHP:
Ver original
  1. function transformarFechas($fecha1, $fecha2)
  2. {
  3.    $fecha1 = substr($fecha1, 0, strpos($fecha, ' ')); //Quitamos la hora a la fecha
  4.    $fecha2 = substr($fecha2, 0, strpos($fecha, ' ')); //Quitamos la hora a la fecha 2
  5.  
  6.    //y usamos la función anterior
  7.   return dias_diferencia(strtotime($fecha1), strtotime($fecha2));
  8. }

Gracias, eso del resto no lo habia pensado pero funciona!
De todos modos si lo de restar 2 fechas "a pelo" sin pasarlas a timestamp funciona en todas las versiones de php yo creo que es lo mejor.
¿Que opinais?