Foros del Web » Programando para Internet » Javascript »

Saber días entre dos fechas.

Estas en el tema de Saber días entre dos fechas. en el foro de Javascript en Foros del Web. Hola a todos. Estoy tratando de sacar los días que hay entre dos fechas transcurridas. Si compàro el valor de los campos que recogen las ...
  #1 (permalink)  
Antiguo 12/06/2008, 14:55
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Saber días entre dos fechas.

Hola a todos.

Estoy tratando de sacar los días que hay entre dos fechas transcurridas.

Si compàro el valor de los campos que recogen las fechas el resultado = NaN

He probado parseando mediante parseInt(campo), pero el resultado es el número de día.

Es decir, en el caso 16/06/2008 el resultado es 16.

¿Alguien sabe como podría hacer esto?.

Gracias y saludos a todos.
__________________
------
Saludos.
  #2 (permalink)  
Antiguo 12/06/2008, 15:46
Avatar de Markcoz  
Fecha de Ingreso: noviembre-2006
Mensajes: 158
Antigüedad: 17 años, 5 meses
Puntos: 2
Respuesta: Saber días entre dos fechas.

checate este codigo espeor q sea lo q necesitas

Cita:
<script>
var fecha1 = new Date(2008,06,10);
var fecha2 = new Date(2008,06,15);
var diasDif = fecha2.getTime() - fecha1.getTime();
var dias = Math.round(diasDif/(1000 * 60 * 60 * 24));
alert("dias de diferencia: " + dias);
</script>
  #3 (permalink)  
Antiguo 13/06/2008, 01:47
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Respuesta: Saber días entre dos fechas.

Gracias por el comentario, pero no es lo que necesito.

El caso es el siguiente.

El usuario introduce en un formulario las fechas a comparar. Esta es del tipo dd/mm/yyyy (02/06/2008). Es decir, la fecha está como string.

Lo que trato de hacer es que al ejecutar el submit estás se comparen para sacar los días trascurridos desde la primera fecha, hasta la última.

Si simplemente las resto:

Código:
document.forms[valor].totaltiempo.value=document.forms[valor].hasta.valuedocument.forms[valor].desde.value
El resultado es NaN.

Hago lo mismo pero parseando a int:

Código:
document.forms[valor].totaltiempo.value=parseInt(document.forms[valor].hasta.value)-parseInt(document.forms[valor].desde.value)
Esto no funciona siempre. El aplicar parseInt devuelve el número el día. Lo que quiere decir que en el caso de que la fecha desde sea el 12/06/2008 y la fecha hasta 15/06/2008, los valores que devuelve parseInt son 12 y 15. Al restarse el resultado 3. Correcto.

Pero esto no sirve si se seleccionan días de distintos meses.

Espero haberme explicado bien ahora.

Gracias por el comentario.
__________________
------
Saludos.
  #4 (permalink)  
Antiguo 13/06/2008, 04:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Saber días entre dos fechas.

Fijate bien en la respuesta de Markcoz pues es muy parecido a lo que necesitas.
A simple vista el único cambio que veo que necesitas es pasar las cadenas de tipo string "dd/mm/yyyy" a tipo Date. Y quizá en lugar de Math.round() puede que te interese usar Math.floor() para que más de 12 horas y menos de 24 sean cero días, y no un día.
__________________
Pop & Rock Bands
Pop Music Stars
  #5 (permalink)  
Antiguo 13/06/2008, 08:24
Avatar de Markcoz  
Fecha de Ingreso: noviembre-2006
Mensajes: 158
Antigüedad: 17 años, 5 meses
Puntos: 2
Respuesta: Saber días entre dos fechas.

lo que necesitas " restar las fechas te sirve con la funcion q te pase " pero tienes q adecuar la funcion a tus necesidades, es decir convertir esas fechas que introduce el usuario de tipo string a tipo date... digo tampoco se trata de hacerte las cosas para q nada mas copies y pegues..... salu2
  #6 (permalink)  
Antiguo 13/06/2008, 09:20
 
Fecha de Ingreso: marzo-2008
Mensajes: 166
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Saber días entre dos fechas.

En la página 5 del faq de javascript está... ejemplo http://www.tunait.com/fdw/abridor.htm?FAQ=123
  #7 (permalink)  
Antiguo 13/06/2008, 15:32
Avatar de bruli  
Fecha de Ingreso: mayo-2006
Ubicación: Valencia, Spain, Spain
Mensajes: 77
Antigüedad: 18 años
Puntos: 2
Respuesta: Saber días entre dos fechas.

Bueno gracias por la ayuda.

Lo que habías puesto estaba claro, pero me faltaba saber como convertir dd/mm/yyyy as yyyy,mm,dd.

Al final lo he resuelto así.

Código:
<script>
var fecha1= "12/06/2008";
var dia1= fecha1.substr(0,2);
var mes1= fecha1.substr(3,2);
var anyo1= fecha1.substr(6);

var fecha2= "29/06/2008";
var dia2= fecha2.substr(0,2);
var mes2= fecha2.substr(3,2);
var anyo2= fecha2.substr(6);

var nuevafecha1= new Date(anyo1+","+mes1+","+dia1);
var nuevafecha2= new Date(anyo2+","+mes2+","+dia2);

var Dif= nuevafecha2.getTime() - nuevafecha1.getTime();
var dias= Math.floor(Dif/(1000*24*60*60));
alert(dias);
</script>
__________________
------
Saludos.
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 03:39.