Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Calculo de fechas y dias de pago

Estas en el tema de Calculo de fechas y dias de pago en el foro de PHP en Foros del Web. Hola Me estoy pelendo y no se como calcularlo. Necesito que php me calcule el dia de pago correcto, es decir Partiendo de que es ...
  #1 (permalink)  
Antiguo 09/05/2018, 10:11
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 1 mes
Puntos: 4
Calculo de fechas y dias de pago

Hola

Me estoy pelendo y no se como calcularlo.

Necesito que php me calcule el dia de pago correcto, es decir

Partiendo de que es un pago a 30 dias:

01/01/2001 + 30 dias = 31/01/2001 es decir, aqui me ha sumado 30 dias y aqui no tengo mucho problema en extraer la fecha resultante.

Peeero la cosa se complica si le digo que me calcule que la fecha de pago sea a 30 dias, dia 5 .

Fecha inicio: 01/01/2001 aqui le sumo 30 dias
Fecha resultante: 31/01/2001, pero la fecha de pago es el dia 5 por lo tanto el programa ha de mostrar que la fecha de pago es 05/02/2001 y aqui no se como hacer los condicionales ¿Alguna idea?

Gracias
  #2 (permalink)  
Antiguo 09/05/2018, 10:24
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Calculo de fechas y dias de pago

No es lo mismo calcular una fecha más 30 días que calcular una fecha más un mes.

De cualquier forma, te sugiero utilizar datetime, ejemplo:

Código PHP:
Ver original
  1. $datetime = new DateTime('2013-01-29');
  2. $datetime->modify('+30 day');
  3. echo $datetime->format('Y-m-d H:i:s');
  #3 (permalink)  
Antiguo 16/05/2018, 02:52
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: Calculo de fechas y dias de pago

Gracias @ocp001a

He encontrado otra solución espero que os sirva para calcular la fecha de vencimiento

Tener en cuenta que el formato de fechas es YYYY-MM-DD (año - mes - dia)


Los pasos para calcular las fechas son:

Sumar a la fecha inicio los dias (en este caso 30 dias)
Calculamos el numero de dias que hay entre la fecha resultante y el dia de pago en el mes actual del resultado y al del mes siguiente

Código PHP:

$finicio 
"2003-01-15";
$dias "30";
$diapago1 "5";

echo 
'<p>Fecha inicio: '.$finicio.'</p>'
echo 
'<p>Dias: '.$dias.'</p>'
echo 
'<p>Dia de pago: '.$diapago1.'</p>'


$dias $dias 86400;
        
        
$fecharesultado date('Y-m-d'strtotime($finicio) + $dias);

echo 
'<p>30 dias '.$fecharesultado.'</p>';


$xfecha explode("-"$fecharesultado);
            
$fano $xfecha[0];
            
$fmes $xfecha[1];
            
$fdia $xfecha[2];
        
        
$xtempfpagoa $fano.'-'.$fmes.'-'.$diapago1;
        
$fmes $fmes 1;
        
$xtempfpagob $fano.'-'.$fmes.'-'.$diapago1;


$datetime1 = new DateTime($fecharesultado);
$datetime2 = new DateTime($xtempfpagoa);
$intervala $datetime1->diff($datetime2);
$difa $intervala->format('%R%a');


$datetime1 = new DateTime($fecharesultado);
$datetime2 = new DateTime($xtempfpagob);
$intervalb $datetime1->diff($datetime2);
$difb $intervalb->format('%R%a');

$date = new DateTime($xtempfpagoa);
$xtempfpagoa =  $date->format('Y-m-d');

$date = new DateTime($xtempfpagob);
$xtempfpagob =  $date->format('Y-m-d');


echo 
'<p>dif A '.$difa.' -- '.$xtempfpagoa.'</p>';
echo 
'<p>dif B '.$difb.' -- '.$xtempfpagob.'</p>';


$numdifa = (float)$difa;
$numdifb = (float)$difb;

echo 
'<p>numero: '.$numdifa.'</p>';
echo 
'<p>numero: '.$numdifb.'</p>';

if (
$numdifa == && $numdifa == 0)
{
    echo 
'<p>Es el mismo dia de vencimiento: '.$xtempfpagoa.'</p>';
}
else
{
    if (
$numdifa 0)
    {
        echo 
'<p>La fecha de vencimiento será '.$xtempfpagoa.'</p>';
    }
    else
    {
        echo 
'<p>La fecha de vencimiento será '.$xtempfpagob.'</p>';
    }



Etiquetas: calculo, dias, pago
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 09:43.