Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   resta de Fechas en php (http://www.forosdelweb.com/f18/resta-fechas-php-924902/)

Flakiss 27/06/2011 18:56

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

johhan16 27/06/2011 19:26

Respuesta: resta de Fechas en php
 
el problema son los pequeños detalles :risa:

modifica esto

$mes1 = $fecha[1];

por esto

$mes1 = $fecha1[1];

un 1 hace la diferencia :risa:

Flakiss 27/06/2011 20:36

Respuesta: resta de Fechas en php
 
hejejejejee que loca!!

bueno, agregue el 1 pero asi y todo me da mas de 100 jejeje

johhan16 28/06/2011 08:00

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


La zona horaria es GMT -6. Ahora son las 10:33.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2014, Jelsoft Enterprises Ltd.

SEO by vBSEO 3.3.2