Foros del Web » Programando para Internet » PHP »

Calculo de Fecha

Estas en el tema de Calculo de Fecha en el foro de PHP en Foros del Web. hola a todos tengo la siguiente funcion: Código PHP: function  fechaprox  ( $fecha , $dias ) {      $date = explode  ( '-' , $fecha ...
  #1 (permalink)  
Antiguo 16/08/2003, 21:32
Avatar de davidMS  
Fecha de Ingreso: abril-2003
Ubicación: Chepe
Mensajes: 202
Antigüedad: 14 años, 7 meses
Puntos: 0
Calculo de Fecha

hola a todos tengo la siguiente funcion:

Código PHP:
function fechaprox ($fecha,$dias)
{

    
$date=explode ('-',$fecha);
    
$yr=$date[0];
    
$mnth=$date[1];
    
$dy=$date[2];
    
$proxdate("Y-m-d"mktime(0,0,0,$mnth,$dy+$dias-date("w",mktime(0,0,0,$mnth,$dy,$yr)),$yr));
    return 
$prox;

Esta un tiempo a tras me calculaba los dias adelante segun la variable dias, por ejemplo si yo pasaba fechaprox ('2003-08-16',30); me devolvia esa fecha mas 30 dias osea 2003-09-15;

el problema es que hoy la llegue a utilizar y ya no me sirve, los dias no son correctos, alguien sabe porque o alguien me puede aconsejar para conseguir un script que calcule la fecha pasandole por referencia una variable con la cantidad de dias que quiero calcular para la fecha proxima..

pura vida
  #2 (permalink)  
Antiguo 16/08/2003, 23:20
 
Fecha de Ingreso: julio-2003
Mensajes: 165
Antigüedad: 14 años, 5 meses
Puntos: 1
Hola,

En realidad, siguiendo la lógica del segmento de código que has publicado, resulta curioso pensar que hubiera funcionado del modo que mencionas. Es realmente interesante la expresión " $dy+$dias-date("w",mktime(0,0,0,$mnth,$dy,$yr)) ", aunque no entiendo su propósito en este caso específico.

Posiblemente el código haya sido modificado con el tiempo, y ahora calcula otro valor distinto orientado hacia otra cosa distinta, o quizás, por pura casualidad, devuelve valores válidos para ciertas entradas específicas, y por esto podrías haber pensado que funcionaba correctamente para tu problema.

En fin, para el problema que enuncias, quizás algo como lo siguiente podría servirte:

Código:
function fechaprox ($fecha, $dias)

{
    list ($anyo, $mes, $dia) = explode ('-', $fecha);

    // Hay aproximadamente 86400 segundos en un dia
    return date ('Y-m-d', mktime (0, 0, 0, $mes, $dia, $anyo) +
                 $dias * 86400);
}

print fechaprox ('2003-08-16', 30);
Un cordial saludo

Última edición por leonardop; 16/08/2003 a las 23:24
  #3 (permalink)  
Antiguo 17/08/2003, 16:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Esas fechas son extraidas de una Base de datos? .. Por qué si es así te combien muchooooo revisar las funciones (de Mysql?) del motor de BD que estés usando ..

Por ejemplo lo que hace esa función lo podrías hacer directamente sobre el campo de tu BD que gestione esa fecha de una sóla vez con:

DATE_ADD(NOW(), INTERVAL 30 DAY)

="añade a la fecha actual 30 dias" (ideal para calcular "cuotas" automáticamente generando registros (INSERT) con esa simple llamada a la función(es) de Mysql ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 07:43.