Foros del Web » Programando para Internet » PHP »

restar Fechas

Estas en el tema de restar Fechas en el foro de PHP en Foros del Web. Buenas tardes amigos tengo el siguiente problema, quiero saber cuantos dias de diferencia tienen 2 fechas q tengo en una base de dato sql server ...
  #1 (permalink)  
Antiguo 05/12/2012, 14:15
 
Fecha de Ingreso: octubre-2012
Mensajes: 63
Antigüedad: 11 años, 5 meses
Puntos: 0
restar Fechas

Buenas tardes amigos tengo el siguiente problema, quiero saber cuantos dias de diferencia tienen 2 fechas q tengo en una base de dato sql server para saber cuantos días de crédito tiene una persona tengo el siguiente codigo

Código PHP:
$Fecha=gmdate(" d/m/Y "strtotime($FechaVencimiento));
$Fecha2=gmdate(" d/m/Y "strtotime($FechaEFact));
$diferencia=$Fecha-$Fecha2
$dias=($diferencia); 
$Fecha3=$dias
Mi problema es que las fechas son FechaEFact= 14/12/2012 y FechaVencimiento= 14/01/2013 y deberia darme 31 pero me da 0 como si restara el 14 y 14 solamente agradezco su ayuda
  #2 (permalink)  
Antiguo 05/12/2012, 14:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: restar Fechas

En lugar de restarlas como texto, resta directamente los timestamps:
Código PHP:
Ver original
  1. $diferencia = strtotime($FechaVencimiento) - strtotime($FechaEFact);
Ahí solo te faltará convertirlo a días.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 05/12/2012, 14:43
 
Fecha de Ingreso: octubre-2012
Mensajes: 63
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: restar Fechas

amigo hice lo q me dices y me da como resultado 13579 cuando deberia ser 31 dias y ya !
porq es eso?
  #4 (permalink)  
Antiguo 05/12/2012, 14:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: restar Fechas

Como te decía:
Cita:
Iniciado por David Ver Mensaje
Ahí solo te faltará convertirlo a días.
El resultado que obtendrás es en segundos. Haz el intento de convertirlo, luego nos comentas cómo te fue.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 05/12/2012, 14:49
 
Fecha de Ingreso: octubre-2012
Mensajes: 63
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: restar Fechas

amigo muchas gracias ya lo hice de verdad q me ayudastes mucho la solucion era asi

Código PHP:
 $Fecha=gmdate(" d/m/Y "strtotime($FechaVencimiento));
                                  
$Fecha2=gmdate(" d/m/Y "strtotime($FechaEFact));
                                  
$diferencia=strtotime($FechaVencimiento) - strtotime($FechaEFact);
                                  
$dias=($diferencia)/(24*3600); 
                                  
$Fecha3=$dias
  #6 (permalink)  
Antiguo 05/12/2012, 14:54
 
Fecha de Ingreso: octubre-2012
Mensajes: 63
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: restar Fechas

ahora tengo otra duda si tengo ya los dias y solo la Fecha de inicio puedo mostrar la fechaVencimiento con el mismo codigo??
  #7 (permalink)  
Antiguo 05/12/2012, 15:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: restar Fechas

Si te refieres a obtener fechaVencimiento a partir de esos dos datos, puedes usar strtotime para sumar:
Código PHP:
Ver original
  1. strtotime($FechaEFact + ' +1 day'); // suma un día a la fecha
Véase: http://php.net/strtotime
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 06/12/2012, 14:18
 
Fecha de Ingreso: octubre-2012
Mensajes: 63
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: restar Fechas

amigo lo estoy haciendo pero no me funciona el dia es una variable y lo estoy colocando asi

Código PHP:
$Fecha=strtotime($FechaActual ' +$DIAS day'); // 
he buscado muchas formas pero no me da el resultado que deberia q puedo hacer, quiero es sumarle a la fecha de hoy el $DIAS para ver cuanto tiempo tengo
  #9 (permalink)  
Antiguo 06/12/2012, 14:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: restar Fechas

¿Qué resultado te da? ¿Produce error? ¿En qué formato está la fecha en $FechaActual?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 06/12/2012, 14:39
 
Fecha de Ingreso: octubre-2012
Mensajes: 63
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: restar Fechas

si lo hago como me dijistes no me sale nada.

y lo estoy haciendo asi
Código PHP:
$Fechadate($FechaActual $DIAS ); 
pero solo me muestra el dia es decir hoy es 06/12/2012 me da como resultado 14 ya que $DIAS = 8.

la fecha no esta almacenada en una base de datos solo coloco date ("d/m/Y") y listo me da la fecha de hoy como puedo hacer??
  #11 (permalink)  
Antiguo 06/12/2012, 15:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: restar Fechas

Me había equivocado en el anterior mensaje, no me fijé que había usado el operador de suma (+) cuando lo que debería haber puesto era el operador de concatenación (.)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 06/12/2012, 15:37
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: restar Fechas

un poco tarde pero si tienes php5.3+ puedes usar esté metodo de la clase DateTime http://php.net/manual/es/datetime.diff.php, creo que ahí hay un ejemplo de como implementarlo en 5.2 si mal no recuerdo, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: restar, sql
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 21:36.