como restar fechas y obtener los dias

455 views
Skip to first unread message

yesGood

unread,
Apr 1, 2009, 8:58:54 PM4/1/09
to symfony-es
Hola necesito restar fecha_hoy menos fecha_almacenada y obtener los
dias de diferencia entre ellos......

Como lo hago...??


De antemano Gracias..

pizzakiller

unread,
Apr 1, 2009, 11:33:46 PM4/1/09
to symfo...@googlegroups.com
On Wednesday 01 April 2009 20:28:54 yesGood wrote:
> Hola necesito restar  fecha_hoy menos fecha_almacenada y obtener los
> dias de diferencia entre ellos......
>
> Como lo hago...??

convierte las fechas a timestamp
resta ambos timestamp
divide el resultado entre (3600*24)

ojo: si no guardas la hora fija una hora igual para ambas fechas al convertirlas a timestamp
puede las 23:59 am o las 00:00 para que te de el resultado mas exacto..

bytes
--
Juliocésar Prieto Lem -
Programmers never dies.. Only GOSUB without RETURN
user linux 218820. running Linux 2.6.26-1-686 i686 GNU/Linux
mié abr 1 22:58:36 VET 2009
Fingerprint = 04CC 8521 D3BF EB25 7F95 7E77 BB0A 5235 8C1B EF4B

YesGood

unread,
Apr 1, 2009, 11:21:48 PM4/1/09
to symfo...@googlegroups.com
Hola Pizzakiller..
Gracias por responder, lo he intentado pero me calcula mal  me da 397 cuando debe ser 365
Lo que ice fue lo sgte:
 
$c = new Criteria();
$as = AhorroPrestamoPeer:: doSelect($c);
$fechaActual = date("d/m/Y");
 foreach($as as $a)
 {
    $dif = strtotime($fechaActual) - strtotime($a->getFechaAp());
       if($dif > 0)
    {
         $dias= $dif/(3600 * 24);
   var_dump($dias);
   exit;
    }
 }
 
Encuentras algun error?
 
Saludos

pizzakiller

unread,
Apr 2, 2009, 12:25:51 AM4/2/09
to symfo...@googlegroups.com
On Wednesday 01 April 2009 22:51:48 YesGood wrote:
> strtotime
y si usas esto
<?php
// dia final 11/3/2009 00:00:00
$diafinal = mktime(0,0,0,3,11,2008);
// diainicio 11/3/2008 00:00:00
$_beginDate = mktime(0,0,0,3,11,2007);

$resta = $diafinal-$diainicio +1 ;

$dias = $resta/86400;

?>

--
Juliocésar Prieto Lem -
Programmers never dies.. Only GOSUB without RETURN
user linux 218820. running Linux 2.6.26-1-686 i686 GNU/Linux

mié abr 1 23:51:12 VET 2009

YesGood

unread,
Apr 2, 2009, 12:15:28 AM4/2/09
to symfo...@googlegroups.com
Si, he probado lo que me has dicho y aplicando el ejemplo tuyo, me sale 365,96.
Aora para aplicar lo dicho a mi situacion como puedo usar mktime con $a->getFechaAp(), pues ese es el dato que rescato de la base de datos
 
Gracias x la paciencia..
 
Saludos

pizzakiller

unread,
Apr 2, 2009, 12:49:14 AM4/2/09
to symfo...@googlegroups.com
On Wednesday 01 April 2009 23:45:28 YesGood wrote:
> Si, he probado lo que me has dicho y aplicando el ejemplo tuyo, me sale
> 365,96.
> Aora para aplicar lo dicho a mi situacion como puedo usar mktime con
> $a->getFechaAp(), pues ese es el dato que rescato de la base de datos
que contiene esa expresion que te devuleve exactamente una fecha? un timestamp? una cadena?

--
Juliocésar Prieto Lem -
Programmers never dies.. Only GOSUB without RETURN
user linux 218820. running Linux 2.6.26-1-686 i686 GNU/Linux

jue abr 2 00:18:33 VET 2009

YesGood

unread,
Apr 2, 2009, 12:28:38 AM4/2/09
to symfo...@googlegroups.com
FechaAp es un campo que guardo fechas tipo date, pero al rescatar el valor con var_dump($a->getFechaAp()), me devuelve string(10) "01/04/2008", o sea que es un tipo cadena.
 
 

pizzakiller

unread,
Apr 2, 2009, 1:02:24 AM4/2/09
to symfo...@googlegroups.com
ok bueno conel ejemplo que te envie
tienes que hacer un split de tu cadena asi consigues d m a separados

usa mktime(h,m,s,m,d,Y)

lee sobre mktime para covertir a timestamp y split para dividir cadenas en arreglos.. o usa
cualquier metodo de dividir cadenas que mas te guste,,,,


bytes

--
Juliocésar Prieto Lem -
Programmers never dies.. Only GOSUB without RETURN
user linux 218820. running Linux 2.6.26-1-686 i686 GNU/Linux

jue abr 2 00:28:45 VET 2009

YesGood

unread,
Apr 2, 2009, 12:38:04 AM4/2/09
to symfo...@googlegroups.com
Si ya lo entendi, gracias  por la ayuda.
 
Saludos
Reply all
Reply to author
Forward
0 new messages