Foros del Web » Programando para Internet » Javascript »

Problema de diferencia de fechas

Estas en el tema de Problema de diferencia de fechas en el foro de Javascript en Foros del Web. Muchachos estoy haciendo una tarea de la U y he llegado al limite, he logrado validar todo con javascript ( he aprendido mucho ) pero ...
  #1 (permalink)  
Antiguo 22/11/2012, 18:03
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Problema de diferencia de fechas

Muchachos estoy haciendo una tarea de la U y he llegado al limite, he logrado validar todo con javascript ( he aprendido mucho ) pero esta diferencia con fechas me esta matando. He averiguado harto y llegue a esta solucion:

Código:
if (bVal == true){
 
  var spanRes = document.getElementById('resultado');
  var resDias = ((fAno - iAno ) * 365) + ((fMes - iMes) * 12) + (fDia - iDia);
  var resHoras = (fHora - iHora);
  var res = "La diferencia es "+resDias+" dias y "+resHoras+" horas";
  spanRes.innerHTML = res;
  }
Donde capture la fecha y horas en textbox y luego separe campo por campo para hacer validaciones y aca para el calculo final, con este metodo con la fecha no tengo problema (validando todo bien) pero el tema de la hora me esta matando, ya que cuando la fecha de inicio es menor a la fecha de termino supongamos en 1 dia y la hora de inicio es mayor a la de termino no puedo hacer ese calculo que le restaria al dia horas.
Busque y busque y encontre algo que supuestamente lo solucionaria, y llegue a esto:

Código:
if (bVal == true){
  
  var fechaInicio = new Date(iAno,iMes,iDia,iHora,iMin,00);
  var fechaTermino = new Date(fAno,fMes,fDia,fHora,fMin,00);
  var resDate = fechaTermino.getTime() - fechaInicio.getTime();
  
  var res = "La diferencia es "+resDate+" noses (ya que no se que resultado daría) ";
  spanRes.innerHTML = res;
  }
Jaja supuestamente transformando todo a formato date() podria hacer el calculo de forma instantanea, pero no me funciona :( .. por fis una ayudita no quiero quedar con la duda, por que hasta el momento entregare mi tarea con la primera opcion ^^
  #2 (permalink)  
Antiguo 22/11/2012, 22:59
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema de diferencia de fechas

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Diferencia entre 2 fechas con dias horas y minutos</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. var fecha_1 = new Date("12/25/2013 11:00:00");
  9. var fecha_2 = new Date("12/25/2011 16:23:00");
  10. var difMs = (fecha_2 - fecha_1); // diferencia en milisegundos entre las dos fechas
  11. var difDias = Math.round(difMs / 86400000); // cantidad de dias
  12. var difHoras = Math.round((difMs % 86400000) / 3600000); // cantidad de horas
  13. var difMinutos = Math.round(((difMs % 86400000) % 3600000) / 60000); // cantidad de minutos
  14.  
  15. // Si la fecha 2 es menor que la fecha uno, la diferencia es negativa
  16. // convertimos a un valor absoluto
  17. if(difDias < 0){
  18. difDias = difDias * (-1);
  19. difHoras = difHoras * (-1);
  20. difMinutos = difMinutos * (-1);
  21. }
  22. window.onload= function(){
  23. document.getElementById('diferencia').innerHTML = difDias + " días, " + difHoras + " horas, " + difMinutos + " minutos";
  24. }
  25. //]]>
  26. </head>
  27. <p>La diferencia entre las fechas es: <span id="diferencia"><!-- valor diferencia --></span></p>
  28. </body>
  29. </html>

Salu2
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 23/11/2012, 07:51
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Problema de diferencia de fechas

Muy bueno, no sabia que todo lo convertía a mili segundos ni que tenia ese formato, lo he adecuado para que cada día ponerlo en el formato ese pero aun tenia problemas con la hora cuando por ejemplo la fecha de inicio y la fecha de termino había diferencia de un día y la hora de inicio era mayor a la hora de termino siendo la diferencia solo horas... bueno eso lo solucione con esto

Código:
if (f.txf_inicio.value < f.txf_termino.value && f.txh_inicio.value > f.txh_termino.value){
		difDias = difDias - 1;
	}
Gracias por tu ayuda desinteresada, he aprendido un poco mas contigo

Etiquetas: diferencia, funcion, html
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 23:14.