Foros del Web » Programando para Internet » PHP »

Diferencia de dias en fecha

Estas en el tema de Diferencia de dias en fecha en el foro de PHP en Foros del Web. Hola a todos ! Tengo una duda con el tema de las fechas.. Tengo un sistema que compara entre el dia de hoy y una ...
  #1 (permalink)  
Antiguo 05/08/2011, 02:09
Avatar de Damicapu  
Fecha de Ingreso: octubre-2009
Ubicación: Campana, Buenos Aires
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Diferencia de dias en fecha

Hola a todos !

Tengo una duda con el tema de las fechas.. Tengo un sistema que compara entre el dia de hoy y una fecha guardada en una base de datos, si hoy es igual a la fecha almacenada procedemos a una funcion.. en fin.. Lo que yo quiero hacer es mostrarle al usuario cuantos dias faltan para que llegue el dia de vencimiento.

Por ejemplo: Hoy es 05-08-2011 y la fecha de vencimiento almacenada es 05-09-2011 entonces faltan 31 dias.

como puedo hacer esto ?
__________________
Probar, probar y probar es la unica manera en la que va a funcionar.
  #2 (permalink)  
Antiguo 05/08/2011, 04:12
 
Fecha de Ingreso: agosto-2011
Mensajes: 9
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Diferencia de dias en fecha

asi:
Código PHP:
Ver original
  1. $fechaLimite = '05-09-11';
  2. $fechaActual = explode("-", date('d-m-y'));
  3. $fechaLimite = explode("-", $fechaLimite);
  4. $diasFaltantes = gregoriantojd($fechaLimite[1], $fechaLimite[0], $fechaLimite[2]) - gregoriantojd($fechaActual[1], $fechaActual[0], $fechaActual[2]);
  5. echo 'Faltan '.$diasFaltantes.' dias.';

  #3 (permalink)  
Antiguo 05/08/2011, 11:52
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Diferencia de dias en fecha

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fecha1 = new DateTime('05-08-2011');
  4. $fecha2 = new DateTime('05-09-2011');
  5. $intervalo = $fecha1->diff($fecha2);
  6. echo $intervalo->format('%a dias');
  #4 (permalink)  
Antiguo 05/08/2011, 17:31
Avatar de Damicapu  
Fecha de Ingreso: octubre-2009
Ubicación: Campana, Buenos Aires
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Diferencia de dias en fecha

Muchas gracias por la respusta!
__________________
Probar, probar y probar es la unica manera en la que va a funcionar.
  #5 (permalink)  
Antiguo 05/08/2011, 18:35
 
Fecha de Ingreso: mayo-2010
Mensajes: 128
Antigüedad: 14 años, 5 meses
Puntos: 13
Respuesta: Diferencia de dias en fecha

¿Y eso sirve para calcular los bisiestos?

Por ejemplo, sería capaz de calcular los dias exactos entre 05-01-2004 y 05-12-2010?
  #6 (permalink)  
Antiguo 05/08/2011, 18:37
Avatar de Damicapu  
Fecha de Ingreso: octubre-2009
Ubicación: Campana, Buenos Aires
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Diferencia de dias en fecha

Por lo que se, no se si es posible eso. Seria mas exacto con la fecha en formato unix, usando time();
__________________
Probar, probar y probar es la unica manera en la que va a funcionar.
  #7 (permalink)  
Antiguo 05/08/2011, 18:52
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Diferencia de dias en fecha

Yo uso esta función que encontré hace tiempo, usa mktime por lo que creo que es más exacta:
Código PHP:
Ver original
  1. function calc_dates($date1, $date2) {
  2.     $f1 = explode('/', $date1);
  3.     $f2 = explode('/', $date2);
  4.     $timestamp1 = mktime(0,0,0,$f1[0],$f1[1],$f1[2]);
  5.     $timestamp2 = mktime(4,12,0,$f2[0],$f2[1],$f1[2]);
  6.     $segundos_diferencia = $timestamp1 - $timestamp2;
  7.     $dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
  8.     $dias_diferencia = abs($dias_diferencia);
  9.     $dias_diferencia = floor($dias_diferencia);
  10.     return $dias_diferencia;
  11. }
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #8 (permalink)  
Antiguo 05/08/2011, 18:53
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Diferencia de dias en fecha

Cita:
Iniciado por mitrofan Ver Mensaje
¿Y eso sirve para calcular los bisiestos?

Por ejemplo, sería capaz de calcular los dias exactos entre 05-01-2004 y 05-12-2010?
Claro que si, tu resultado es: 2526 dias
  #9 (permalink)  
Antiguo 05/08/2011, 18:54
Avatar de Damicapu  
Fecha de Ingreso: octubre-2009
Ubicación: Campana, Buenos Aires
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Diferencia de dias en fecha

Gracias a todos por los aportes !
__________________
Probar, probar y probar es la unica manera en la que va a funcionar.
  #10 (permalink)  
Antiguo 05/08/2011, 19:03
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Diferencia de dias en fecha

Cita:
Iniciado por Sourcegeek Ver Mensaje
Yo uso esta función que encontré hace tiempo, usa mktime por lo que creo que es más exacta:
Código PHP:
Ver original
  1. function calc_dates($date1, $date2) {
  2.     $f1 = explode('/', $date1);
  3.     $f2 = explode('/', $date2);
  4.     $timestamp1 = mktime(0,0,0,$f1[0],$f1[1],$f1[2]);
  5.     $timestamp2 = mktime(4,12,0,$f2[0],$f2[1],$f1[2]);
  6.     $segundos_diferencia = $timestamp1 - $timestamp2;
  7.     $dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
  8.     $dias_diferencia = abs($dias_diferencia);
  9.     $dias_diferencia = floor($dias_diferencia);
  10.     return $dias_diferencia;
  11. }
Bueno eso es lo mismo que:

Código PHP:
Ver original
  1. $fecha1 = new DateTime('05-08-2011');
  2. $fecha2 = new DateTime('05-09-2011');
  3. $intervalo = $fecha1->diff($fecha2);
  4. echo $intervalo->format('%a dias');

y da exactamente lo mismo.
  #11 (permalink)  
Antiguo 06/08/2011, 05:39
 
Fecha de Ingreso: mayo-2010
Mensajes: 128
Antigüedad: 14 años, 5 meses
Puntos: 13
Respuesta: Diferencia de dias en fecha

Cita:
Iniciado por andresdzphp Ver Mensaje
Claro que si, tu resultado es: 2526 dias
Vaya, con la cantidad de funciones que tiene php para estos menesteres se simplifica bastante la programación en este lenguaje. Preguntaba lo de las fechas porque hace un año hice un curso de php (el cual estaba bastante bien pero se quedaba corto en horas) en el que el profesor nos planteba un ejercicio como el anteriormente expuesto calculando también los bisiestos, y la verdad es que tenía su miga. Por supuesto no podiamos usar funciones nativas de php.

Saludos !!

Etiquetas: dias, diferencia, fecha, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:00.