Foros del Web » Programando para Internet » PHP »

Cálculo de días entre dos fechas

Estas en el tema de Cálculo de días entre dos fechas en el foro de PHP en Foros del Web. Tengo el siguiente Script que calcula la cantidad de días entre dos fechas. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $start = '19/03/2015' ; $end = ...
  #1 (permalink)  
Antiguo 04/06/2015, 12:11
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 16 años, 8 meses
Puntos: 4
Pregunta Cálculo de días entre dos fechas

Tengo el siguiente Script que calcula la cantidad de días entre dos fechas.

Código PHP:
Ver original
  1. $start = '19/03/2015';
  2. $end = '08/04/2015';
  3. $diff = (strtotime($end)- strtotime($start))/24/3600;
  4.  
  5. //muestro la cantidad de días
  6. echo $diff;

El resultado que obtengo es: 16652 (o sea 16 días)

¿Cómo podría hacer que me muestre "16" y no "16652" ?

Ahora, lo ideal sería(en este caso que no cuente los fines de semana)
  #2 (permalink)  
Antiguo 04/06/2015, 12:20
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Cálculo de días entre dos fechas

y como sabes que son 16?
si ya lo sabes crea una funciona para hacer la conversion :)
  #3 (permalink)  
Antiguo 04/06/2015, 12:51
 
Fecha de Ingreso: julio-2007
Mensajes: 287
Antigüedad: 16 años, 8 meses
Puntos: 4
Respuesta: Cálculo de días entre dos fechas

Creo que basta con pegarse la molestia y ver la diferencia de días en un calendario no?.
Por eso sé la cantidad de días. Puse los días ahí solo para ejemplificar. Los datos reales son variables.
Por otro lado de verdad crees que si lo supiera habría posteado esta preguntar?

Saludos y gracias de todas maneras por tu tiempo.
  #4 (permalink)  
Antiguo 05/06/2015, 01:29
 
Fecha de Ingreso: septiembre-2014
Mensajes: 180
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: Cálculo de días entre dos fechas

Tus cálculos no son correctos y hay algunos errores en el PHP. En verdad el resultado que tendrías que obtener es 19 días y el formato de entrada de las fechas de strtotime no es correcto, ya que no sigue una notación de las indicadas en:

http://php.net/manual/es/datetime.formats.date.php

Cambiando esto lo que te falta también es un redondeo de la conversión a días para que no tengas decimales.

En resumen, tus cálculos modificados serían:

Código PHP:
Ver original
  1. $start = '2015/03/19';
  2. $end = '2015/04/08';
  3. $diff = (strtotime($end)- strtotime($start))/24/3600;
  4.  
  5. //muestro la cantidad de días
  6. echo floor($diff);

Prueba a ver si así obtienes el valor que necesitas.
__________________
Unelink.es - VPS, servidores dedicados, hosting y dominios. 10 años a tu lado.
  #5 (permalink)  
Antiguo 05/06/2015, 01:54
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cálculo de días entre dos fechas

Del 19 de marzo al 8 de abril no hay 16 ni 19 días sino 20 puesto que marzo tiene 31 días.

Para obtener la diferencia entre dos fechas, PHP ofrece métodos como DateTime::diff().

Código PHP:
Ver original
  1. $datetime1 = new DateTime(date('Y-m-d', strtotime(str_replace('/', '-', '19/03/2015'))));
  2. $datetime2 = new DateTime(date('Y-m-d', strtotime(str_replace('/', '-', '08/04/2015'))));
  3. $interval = $datetime1->diff($datetime2);
  4. echo $interval->format('%a días'); //20 días

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: fecha
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 22:37.