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. Hola, cómo están? necesito manipular las fechas seleccionadas por un usuario para calcular la cantidad de días que serían en total. Es decir hacer una ...
  #1 (permalink)  
Antiguo 24/09/2012, 10:51
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 7 meses
Puntos: 0
Restar Fechas

Hola, cómo están? necesito manipular las fechas seleccionadas por un usuario para calcular la cantidad de días que serían en total.
Es decir hacer una resta entre fecha fin y fecha inicio. He utilizado un calendario de jquery y no sé como realizar la función..

$CONTENIDO.="<TR><td>Fecha de Inicio: <input id='fechainicio' name='fechainicio' type='text' class='calendario' OnChange=' if (this.value!=\"\" && destinos.fechafin.value!=\"\")destinos.submit()' value='$fechainicio'>
</TD></TR>";


$CONTENIDO.="<TR><TD>Fecha Fin: <input id='fechafin' name='fechafin' type='text' class='calendario' OnChange='if (this.value!=\"\" && destinos.fechainicio.value!=\"\" )destinos.submit() ;' value='$fechafin'></TD></TR>";

. Alguna idea que me puedan dar?
Gracias!
  #2 (permalink)  
Antiguo 24/09/2012, 11:23
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Restar Fechas

Manual DateTime::diff -- date_diff — Devuelve la diferencia entres objetos DateTime
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 24/09/2012, 11:49
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Restar Fechas

Gracias por tu respuesta he querido utilizar el siguiente código
$datetime1=$fechainicio;
$datetime2=$fechafin;
$intervalo= date_diff($datetime1,$datetime2);
echo $intervalo;

pero no me funciona, me indica lo siguiente date_diff() expects parameter 1 to be DateTime, string given in.. lo que a mi entender significa que $datetime1 está como string y no como date.. cómo podría convertirlo?

Muchas Gracias.
  #4 (permalink)  
Antiguo 24/09/2012, 13:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Restar Fechas

DateTime::diff -- date_diff — Devuelve la diferencia entres objetos DateTime

Código PHP:
Ver original
  1. <?php
  2. $datetime1 = new DateTime('2009-10-11');
  3. $datetime2 = new DateTime('2009-10-13');
  4. $intervalo = $datetime1->diff($datetime2);
  5. echo $intervalo->format('%R%a días');
  6. ?>

El primer ejemplo del manual!!!!
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 24/09/2012, 13:50
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Restar Fechas

Si el primer ejemplo, pero no funciona!!
  #6 (permalink)  
Antiguo 25/09/2012, 00:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Restar Fechas

Devuelve la diferencia entre objetos DateTime

Código PHP:
Ver original
  1. <?php
  2. $datetime1 = new DateTime($fechainicio);
  3. $datetime2 = new DateTime($fechafin);
  4. $intervalo = $datetime1->diff($datetime2);
  5. echo $intervalo->format('%R%a días');
  6. ?>

Si $fechainicio es un string con el formato YYYY-mm-dd luego "new DateTime($fechainicio)" será un objeto DateTime.

El primer ejemplo.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #7 (permalink)  
Antiguo 25/09/2012, 14:40
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Restar Fechas

Muchas Gracias, pero me da una cantidad de días sin haber seleccionado fecha alguna en el calendario y cuando realizo la selección no se modifica esa cantidad.
  #8 (permalink)  
Antiguo 26/09/2012, 03:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Restar Fechas

Estas pasando los datos correctamente?
Te estas asegurando que mientras las variables que guardan las fechas no tengan valor el script no se ejecute?
...

El ejemplo del manual es con datos fijos, tu lo adaptas pasando variables, esas variables pueden ser nulas o mal formateadas con lo que el resultado no será el esperado.... Finalmente debes modificar tu script para que el valor elegido pase a las variables y una vez ha llegado el valor se ejecute el script php de calculo de dias...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: Ninguno
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 12:27.