Foros del Web » Programando para Internet » PHP »

resta de Fechas en php

Estas en el tema de resta de Fechas en php en el foro de PHP en Foros del Web. Hola, Necesito un poco de ayuda !!! estoy usando esta funcion, function FechaGarantia($fecha1){ //defino fecha 1 $fecha1= explode("-",$fecha1); $ano1 = $fecha1[2]; $mes1 = $fecha[1]; $dia1 ...
  #1 (permalink)  
Antiguo 27/06/2011, 18:56
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 14 años, 7 meses
Puntos: 1
resta de Fechas en php

Hola,

Necesito un poco de ayuda !!!
estoy usando esta funcion,

function FechaGarantia($fecha1){
//defino fecha 1
$fecha1= explode("-",$fecha1);
$ano1 = $fecha1[2];
$mes1 = $fecha[1];
$dia1 = $fecha1[0];

//defino fecha 2
$ano2 = date("Y");
$mes2 = date("m");
$dia2 = date("d");

//calculo timestam de las dos fechas
$timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2 = mktime(0,0,0,$mes2,$dia2,$ano2);20110520-20110627

//resto a una fecha la otra
$segundos_diferencia = $timestamp2 - $timestamp1;
//echo $segundos_diferencia;

//convierto segundos en días
$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);

//obtengo el valor absoulto de los días (quito el posible signo negativo)
$dias_diferencia = abs($dias_diferencia);

//quito los decimales a los días de diferencia
$dias_diferencia = floor($dias_diferencia);

return $dias_diferencia;

}

necesito restar dos fechas para saber cuantos dias han pasado... necesito calcular si la devolucion de un producto esta dentro del periodo de garantia.

por ejemplo del 20-05-2011 al 20-06-2011 ha pasado un solo mes en teoria 30 dias.
pero con la funcion anterior me dice que han pasado mas de 100 dias XD
y mi garantia es de 60 dias...
me falta alguna paso?? para que me de el real de dias pasados??

agradezco desde ya cualquier ayuda :D
  #2 (permalink)  
Antiguo 27/06/2011, 19:26
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: resta de Fechas en php

el problema son los pequeños detalles

modifica esto

$mes1 = $fecha[1];

por esto

$mes1 = $fecha1[1];

un 1 hace la diferencia
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #3 (permalink)  
Antiguo 27/06/2011, 20:36
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: resta de Fechas en php

hejejejejee que loca!!

bueno, agregue el 1 pero asi y todo me da mas de 100 jejeje
  #4 (permalink)  
Antiguo 28/06/2011, 08:00
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: resta de Fechas en php

bueno prueba exactamente asi y veras que te da 30

Código PHP:
<?php

function FechaGarantia($fecha1){
//defino fecha 1
$fecha1explode("-",$fecha1);
$ano1 $fecha1[2];
$mes1 $fecha1[1];
$dia1 $fecha1[0];

//defino fecha 2
$ano2 date("Y");
$mes2 date("m");
$dia2 date("d");

//calculo timestam de las dos fechas
$timestamp1 mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2 mktime(0,0,0,$mes2,$dia2,$ano2); //20110520-20110627

//resto a una fecha la otra
$segundos_diferencia $timestamp2 $timestamp1;
//echo $segundos_diferencia;

//convierto segundos en días
$dias_diferencia $segundos_diferencia / (60 60 24);

//obtengo el valor absoulto de los días (quito el posible signo negativo)
$dias_diferencia abs($dias_diferencia);

//quito los decimales a los días de diferencia
$dias_diferencia floor($dias_diferencia);

return 
$dias_diferencia

}

echo 
FechaGarantia("28-07-2011");

?>
debes tener alguna otra falla
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O

Etiquetas: fechas, resta
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 14:42.