Foros del Web » Programando para Internet » Javascript »

Calcular Fecha de Finalizacion

Estas en el tema de Calcular Fecha de Finalizacion en el foro de Javascript en Foros del Web. Tengo tres campos en un formulario, dos son calendarios que funcionan con javascript y el otro es un input text que recibe un dato numerico, ...
  #1 (permalink)  
Antiguo 12/06/2015, 09:46
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Calcular Fecha de Finalizacion

Tengo tres campos en un formulario, dos son calendarios que funcionan con javascript y el otro es un input text que recibe un dato numerico, lo que necesito es, que cuando ponga la fecha inicial en campo1 y el numero de dias en campo 2, campo 3 se actualice inmediatamente mostrando la fecha final que debe resultar de la suma de la fecha inicial + el numero de dias.

alguien sabe como lo puedo hacer.

Gracias.
__________________
Say no more.......
  #2 (permalink)  
Antiguo 12/06/2015, 09:50
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Calcular Fecha de Finalizacion

Para empezar, supongo que eso lo querrás hacer en el lado del cliente mediante javascript, y no en el servidor con php tras una llamada ajax del lado del cliente.
  #3 (permalink)  
Antiguo 12/06/2015, 09:58
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Calcular Fecha de Finalizacion

Lo unico que debes de hacer es llamarcon el evento onchange() del input a una funcion que obtenga el valor de la fecha inicial y los dias a sumar, y que luego sume esos dias.

Puedes encontrar muchas funciones javascript ya hechas con esa funcionalidad, yo he encontrado esta aqui http://www.lawebdelprogramador.com/c...l-sistema.html :


Código PHP:
<html>
 
<
head>
<
script type="text/javascript">
/**
 * Funcion que devuelve la fecha actual y la fecha modificada n dias
 * Tiene que recibir el numero de dias en positivo o negativo para sumar o
 * restar a la fecha actual.
 * Ejemplo:
 *  mostrarFecha(-10) => restara 10 dias a la fecha actual
 *  mostrarFecha(30) => añadira 30 dias a la fecha actual
 */
function mostrarFecha(days){
    
milisegundos=parseInt(35*24*60*60*1000);
 
    
fecha=new Date();
    
day=fecha.getDate();
    
// el mes es devuelto entre 0 y 11
    
month=fecha.getMonth()+1;
    
year=fecha.getFullYear();
 
    
document.write("Fecha actual: "+day+"/"+month+"/"+year);
 
    
//Obtenemos los milisegundos desde media noche del 1/1/1970
    
tiempo=fecha.getTime();
    
//Calculamos los milisegundos sobre la fecha que hay que sumar o restar...
    
milisegundos=parseInt(days*24*60*60*1000);
    
//Modificamos la fecha actual
    
total=fecha.setTime(tiempo+milisegundos);
    
day=fecha.getDate();
    
month=fecha.getMonth()+1;
    
year=fecha.getFullYear();
 
    
document.write("Fecha modificada: "+day+"/"+month+"/"+year);
}
</script>
 
<body onload="mostrarFecha(-1);">
</body>
 
</html> 
  #4 (permalink)  
Antiguo 22/06/2015, 09:58
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 22 años, 10 meses
Puntos: 20
Respuesta: Calcular Fecha de Finalizacion

Gracias Jpint, la verdad apenas hasta ahora puedo ver el mensaje, precisamente esto es lo que necesito, sin embargo, nunca he trabajado a fondo con Javascript y no se como manejar los campos, es decir, como puedo manejar este script con variables obtenidas desde un formulario y no constante asi como esta ahora.
__________________
Say no more.......
  #5 (permalink)  
Antiguo 29/06/2015, 05:46
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Calcular Fecha de Finalizacion

Y que tipo de campos utilizas para construir el calendario? Utilizas alguna librería en concreto??

Supongo que utilices lo que utilices te serviría hacer algo así:

Código PHP:
<html>
<!-- 
campos fecha inicio -->
<
input type="text" id="fecha_inicio" onchange="calcularFechaFin()" value="" />
<!-- 
campos fecha fin -->
<
input type="text" id="dias" onchange="calcularFechaFin()" value="0">
<!-- 
campos fecha fin -->
<
input type="text" id="fecha_fin" value "" />

<
script>
function 
calcularFechaFin(){
    
//recojo la fecha de inicio
    
var f_ini document.getElementById("fecha_inicio").value;
    
//recojo los dias a sumar
    
var dias document.getElementById("dias").value;

    
//realiza el calculo
    
var f_fin calcularFecha(diasf_ini);

    
//actualiza el valor de fecha fin
    
document.getElementById("fecha_fin").value f_ini;
}



function 
calcularFecha(dfecha)
{
     var 
Fecha = new Date();
     var 
sFecha fecha || (Fecha.getDate() + "/" + (Fecha.getMonth() +1) + "/" Fecha.getFullYear());
     var 
sep sFecha.indexOf('/') != -'/' '-'
     var 
aFecha sFecha.split(sep);
     var 
fecha aFecha[2]+'/'+aFecha[1]+'/'+aFecha[0];
     
fecha= new Date(fecha);
     
fecha.setDate(fecha.getDate()+parseInt(d));
     var 
anno=fecha.getFullYear();
     var 
mesfecha.getMonth()+1;
     var 
diafecha.getDate();
     
mes = (mes 10) ? ("0" mes) : mes;
     
dia = (dia 10) ? ("0" dia) : dia;
     var 
fechaFinal dia+sep+mes+sep+anno;
     return 
fechaFinal;
}

</script>
</html> 

Etiquetas: calcular, fecha, formulario, php
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 00:56.