Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Calcular dias y noches entre 2 fechas y mostrar en input text

Estas en el tema de Calcular dias y noches entre 2 fechas y mostrar en input text en el foro de Frameworks JS en Foros del Web. Hola, estoy tratando de calcular los dias y noches entre 2 fechas pero no me sale. El form está en este enlace http://vamonosdevacaciones.com.ve/cotizacion.php Este es ...
  #1 (permalink)  
Antiguo 22/10/2012, 11:50
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Exclamación Calcular dias y noches entre 2 fechas y mostrar en input text

Hola, estoy tratando de calcular los dias y noches entre 2 fechas pero no me sale. El form está en este enlace http://vamonosdevacaciones.com.ve/cotizacion.php

Este es mi código:

Código HTML:
Ver original
  1.             <legend>Fechas:</legend>
  2.            
  3.             <label for="input-diez" class="float"><strong>Llegada:</strong></label>
  4.             <label><input type="text" id="datepicker_1" name="llegada" class="fechador" /></label>
  5.            
  6.             <label for="input-once" class="float"><strong>Salida:</strong></label>
  7.             <label><input type="text" id="datepicker_2" name="salida" class="fechador"  /></label>
  8.             <label for="input-doce" class="float"><strong>Nº Días y Noches:</strong></label>
  9.             <label><input type="text" id="diferencia" disabled="disabled"></label>

y este es el javascript:

Código Javascript:
Ver original
  1. function getNumeroDeNits(){
  2.     var d1 = $('datepicker_1').val().split("/");
  3.     var dat1 = new Date(d1[2], parseFloat(d1[1])-1, parseFloat(d1[0]));
  4.     var d2 = $('#datepicker_2').val().split("/");
  5.     var dat2 = new Date(d2[2], parseFloat(d2[1])-1, parseFloat(d2[0]));
  6.  
  7.     var fin = dat2.getTime() - dat1.getTime();
  8.     var dias = Math.floor(fin / (1000 * 60 * 60 * 24))  
  9.  
  10.     return dias;
  11.     document.getElementById("diferencia").value = dias;
  12. }

Por qué no funciona?

Gracias
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 22/10/2012, 12:27
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 dias y noches entre 2 fechas y mostrar en input text

Instala Google Chrome.
Abre una pestaña con tu página.
Presiona CTRL + ALT + J, y se abrirá una estupenda herramienta de depuración.

Haz click en la pestaña "source".
Haz click en la flechita que sale a la izquierda, y elige el documento donde tienes los scripts.

Te sladrá en medio el código que se ejecuta. Si haces doble click en cualquier linea (encima del número de la linea), pondrás un BREAKPOINT. Refresca la página con F5, y antes de ejecutarse la línea marcada, se "congelará" la ejecución.
Con las flechitas de la derecha podrás avanzar línea a linea, entrar dentro de una función, etc. Practica.

Si pones el ratón encima del nombre de alguna variable, en la ventana de enmedio donde está todo el código, aparecerá una ventana flotante con mucha información sobre esa variable.

Si el programa explota, en la pestaña "console" aparecerán los errores.
Tambien puedes escribir mensajes aposta en esa consola si en cualquier sitio de tu javascript escribes " console.log('mi mensaje'); "

Así se depura un programa.
  #3 (permalink)  
Antiguo 22/10/2012, 12:41
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Calcular dias y noches entre 2 fechas y mostrar en input text

Gracias pero no me sale nada en chrome cuando le doy CTRL + ALT + J.

???
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 22/10/2012, 13:03
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Calcular dias y noches entre 2 fechas y mostrar en input text

Ya lo encontré al darle inspeccionar elemento. Me sale esto:

(function() {with (this[2]) {with (this[1]) {with (this[0]) {return function(event) {DP_jQuery_1350931635076.datepicker._selectDay('#d atepicker_2',9,2012, this);return false;
};}}}})

No entiendo ni papa
__________________
Caminando con el corazón partío
  #5 (permalink)  
Antiguo 22/10/2012, 13:07
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 dias y noches entre 2 fechas y mostrar en input text

Perdon, CTRL+SHIFT+J
  #6 (permalink)  
Antiguo 23/10/2012, 08:16
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Calcular dias y noches entre 2 fechas y mostrar en input text

Logré el cálculo con esta función:

Código Javascript:
Ver original
  1. var datepicked = function() {    
  2. var from = $('#datepicker_1');          
  3. var to = $('#datepicker_2');          
  4. var diferencia = $('#diferencia');
  5. var diferencia2 = $('#diferencia2');
  6.                                
  7. var fromDate = from.datepicker('getDate')
  8. var toDate = to.datepicker('getDate')
  9. if (toDate && fromDate) {
  10.     var difference = 0;
  11.     var oneDay = 86400000; //ms per day
  12.     var difference = Math.ceil((toDate.getTime() - fromDate.getTime()) / oneDay);
  13.     var difference2 = difference + 1;
  14.     diferencia.val(difference);            
  15.     diferencia2.val(difference2);            
  16.     }  }        
  17.     $(function() {                                    
  18.     $('#datepicker_1, #datepicker_2').datepicker({                        
  19.     onSelect: datepicked  
  20.                    
  21.         });                
  22.     //document.getElementById("diferencia").value = difference;
  23.        
  24.     });

El problema es que me choca con esta otra que va antes:

Código Javascript:
Ver original
  1. $(function () {
  2. // obtenemos la fecha actual
  3. var date = new Date();
  4. var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
  5. // inicializamos datapicker para cada input en este caso con la fecha activa a partir del dia de hoy y con el formato de fecha dd/mm/yy
  6. $("#datepicker_1").datepicker({ minDate: new Date(y, m, d), dateFormat: 'dd/mm/yy' });
  7. $("#datepicker_2").datepicker({ minDate: new Date(y, m, d), dateFormat: 'dd/mm/yy' });
  8. });

Cuando la quito me hace el calculo y si la dejo no lo hace.

Cómo arreglo esto???
__________________
Caminando con el corazón partío
  #7 (permalink)  
Antiguo 23/10/2012, 13:09
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 dias y noches entre 2 fechas y mostrar en input text

Pon un enlace online donde se pueda ver tu código en acción.
  #8 (permalink)  
Antiguo 23/10/2012, 13:59
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Calcular dias y noches entre 2 fechas y mostrar en input text

Hola, este es el enlace: http://vamonosdevacaciones.com.ve/cotizacion.php

Gracias
__________________
Caminando con el corazón partío

Etiquetas: dias, funcion, input, php, txt, calculadora
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 18:12.