Foros del Web » Programando para Internet » PHP »

Saber días entre 2 fechas por POST

Estas en el tema de Saber días entre 2 fechas por POST en el foro de PHP en Foros del Web. Buenos días; Me estoy volviendo loco con este tema. Tengo 2 POST que envían 2 fechas. Lo que quiero hacer es saber como puedo calcular ...
  #1 (permalink)  
Antiguo 29/05/2013, 05:09
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Saber días entre 2 fechas por POST

Buenos días;
Me estoy volviendo loco con este tema.
Tengo 2 POST que envían 2 fechas.
Lo que quiero hacer es saber como puedo calcular la diferencia en días entre esos 2 post y meterla en una variable.

Código PHP:
    $ano1date('Y'$_POST['inicio']);
    
$mes1date('m'$_POST['inicio']);
    
$dia1date('d'$_POST['inicio']);
    
$ano2date('Y'$_POST['fin']);
    
$mes2date('m'$_POST['fin']);
    
$dia2date('d'$_POST['fin']);
    
    
$timestamp1 mktime(0,0,0,$ano1,$mes1,$dia1);
$timestamp2 mktime(0,0,0,$ano2,$mes2,$dia2);
$segundos_diferencia $timestamp1 $timestamp2;
$dias $segundos_diferencia / (60 60 24); 
$dias abs($dias); 
$dias floor($dias); 
Este codigo no me va bien... en e ano1 siempre me arroja 1970 lo mismo que en el ano2.
¿Alguna ayuda?
  #2 (permalink)  
Antiguo 29/05/2013, 05:36
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Saber días entre 2 fechas por POST

prueba asi
Código PHP:
Ver original
  1. $end = strtotime(date('Y-m-d'));
  2. $st=  strtotime(date('Y-m-26'));
  3. $date = array();
  4.  
  5. for($i = $st; $i<=$end; $i += 86400){
  6.     $date[] += count(date('d', $i));
  7. }
  8. echo '<pre>';
  9. echo array_sum($date);
el resultado seria 4
__________________
cada vez que aprendes algo te crees que no sabes nada
  #3 (permalink)  
Antiguo 29/05/2013, 06:31
 
Fecha de Ingreso: septiembre-2012
Ubicación: La Habana
Mensajes: 32
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Saber días entre 2 fechas por POST

Amigo,

Llegate a esta URL y encontraras justo lo que necesitas, al menos para que tengas la idea escencial, despues tu modificas y acomodas tu codigo.

http://www.desarrolloweb.com/articul...echas-php.html

Saludos,
  #4 (permalink)  
Antiguo 29/05/2013, 07:00
 
Fecha de Ingreso: mayo-2013
Mensajes: 23
Antigüedad: 11 años
Puntos: 1
Respuesta: Saber días entre 2 fechas por POST

Hola creo que el error se corregiria con esto

Código PHP:
Ver original
  1. $ano1= date('Y', strtotime($_POST['inicio']));
  2.     $mes1= date('m', strtotime($_POST['inicio']));
  3.     $dia1= date('d', strtotime($_POST['inicio']));
  4.     $ano2= date('Y', strtotime($_POST['fin']));
  5.     $mes2= date('m', strtotime($_POST['fin']));
  6.     $dia2= date('d', strtotime($_POST['fin']));
  7.    
  8.    
  9. $timestamp1 = mktime(0,0,0,$ano1,$mes1,$dia1);
  10. $timestamp2 = mktime(0,0,0,$ano2,$mes2,$dia2);
  11. $segundos_diferencia = $timestamp1 - $timestamp2;
  12. $dias = $segundos_diferencia / (60 * 60 * 24);
  13. $dias = abs($dias);
  14. $dias = floor($dias);

Las variables por POST o GET en el caso de las fechas pasan en formato texto, por eso es mejor hacer la conversion previa en estos casos.
  #5 (permalink)  
Antiguo 29/05/2013, 08:49
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Saber días entre 2 fechas por POST

Aqui te dejo un ejemplo.

Código PHP:
Ver original
  1. <?php
  2. $date1="2010-09-21";
  3. $date2="2010-09-10";
  4.  
  5. $s = strtotime($date1)-strtotime($date2);
  6. $d = intval($s/86400);
  7. $s -= $d*86400;
  8. $h = intval($s/3600);
  9. $s -= $h*3600;
  10. $m = intval($s/60);
  11. $s -= $m*60;
  12.  
  13. $dif= (($d*24)+$h).hrs." ".$m."min";
  14. $dif2= $d.$space.dias." ".$h.hrs." ".$m."min";
  15.  
  16. echo "Diferencia en horas: ".$dif;
  17.  
  18. echo "Diferencia en dias: ".$dif2;
  19. ?>

Etiquetas: post
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 09:43.