Foros del Web » Programando para Internet » PHP »

Problemas al Sumar y restar dias a una fecha

Estas en el tema de Problemas al Sumar y restar dias a una fecha en el foro de PHP en Foros del Web. Hola, usao estas funciones para sumar o restar dias a una fecha: Código PHP: //Sumem dies a una data function  sumadies ( $data , $ndies ){           $any   ...
  #1 (permalink)  
Antiguo 04/06/2007, 08:00
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Problemas al Sumar y restar dias a una fecha

Hola, usao estas funciones para sumar o restar dias a una fecha:

Código PHP:
//Sumem dies a una data
function sumadies($data,$ndies){
    
    
$any  substr($data,0,4);
    
$mes  substr($data,4,2);
    
$dia  substr($data,6,2);    
    
    
$nueva       mktime(0,0,0$mes,$dia,$any) + $ndies 24 60 60;
    
$novadata date("d/m/Y",$nueva);

    return 
$novadata;

}
//Resta dies a una data
function restadies($data,$ndies){

    
$any  substr($data,0,4);
    
$mes  substr($data,4,2);
    
$dia  substr($data,6,2);    
    
    
$nueva       mktime(0,0,0$mes,$dia,$any) - $ndies 24 60 60;
    
$novadata date("d/m/Y",$nueva);

    return 
$novadata;


el caso es q si yo pongo 04/06/2007 y le paso 180 dias me devuelve 30/11/2007, pero si al 30/11/2007 le resto los 180 dias no me da 04/06/2007 sino q devuelve 03/06/2007... el descuadre tambien se me produce si sumo varios años es decir, 3 años = 1095, 4 años = 1460!

alguien sabe el motivo? xq me descuadra la fecha?
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #2 (permalink)  
Antiguo 04/06/2007, 08:51
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: Problemas al Sumar y restar dias a una fecha

SOLUCIONADO
Código PHP:
queda asi la cosa:
//Sumem dies a una data
function sumadies($data,$ndies){
    
    
$any  substr($data,0,4);
    
$mes  substr($data,4,2);
    
$dia  substr($data,6,2);    
    
$dia  =    $dia $ndies ;
    
    
$nueva       mktime(0,0,0$mes,$dia,$any);
    
$novadata date("d/m/Y",$nueva);

    return 
$novadata;

}
//Resta dies a una data
function restadies($data,$ndies){

    
$any  substr($data,0,4);
    
$mes  substr($data,4,2);
    
$dia  substr($data,6,2);    
    
$dia  =    $dia $ndies ;
    
    
$nueva       mktime(0,0,0$mes,$dia,$any);
    
//$nueva       = mktime(0,0,0, $mes,$dia,$any) - $ndies * 24 * 60 * 60;
    
$novadata date("d/m/Y",$nueva);

    return 
$novadata;


__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 06:41.