Foros del Web » Programando para Internet » Javascript »

Validar fecha (antes o despues)

Estas en el tema de Validar fecha (antes o despues) en el foro de Javascript en Foros del Web. Hola, Facil supongo, pero llevo un rato y no entiendo que esta fallando... Código: var vargetdia = (document.form1.fechainsert.value) // el formato que me llega es ...
  #1 (permalink)  
Antiguo 11/02/2010, 00:37
Avatar de catal  
Fecha de Ingreso: julio-2004
Ubicación: BCN
Mensajes: 199
Antigüedad: 19 años, 9 meses
Puntos: 0
Validar fecha (antes o despues)

Hola,

Facil supongo, pero llevo un rato y no entiendo que esta fallando...

Código:
var vargetdia = (document.form1.fechainsert.value)                                   // el formato que me llega es 2010-02-10
var vard1 = vargetdia.split("-");
var formatd = vard1[0]+","+(vard1[1]-1)+","+vard1[2]
	

var myDate=new Date();
myDate.setFullYear(formatd);
var today = new Date();

if (myDate>today)
  {
  alert("Despues");
  }
else
  {
  alert("Antes");
  }
El -1 del formatd es por que el setFullYear el mes va de 0 a 11.

puede comprovar alguien el codigo? simplemente quiero saber si una fecha es superior a hoy o no.

Gracias.
__________________
Vive de manera que puedas mirar fijamente a los ojos de cualquiera y mandarlo al diablo.
-- Mencken, Henry-Louis --
  #2 (permalink)  
Antiguo 11/02/2010, 01:58
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Validar fecha (antes o despues)

estas dos lineas no me hacen sentido
Código:
var formatd = vard1[0]+","+(vard1[1]-1)+","+vard1[2]
...
myDate.setFullYear(formatd);
si ya descompones el formato en sus partes, ¿por que lo vuelves a componer con una coma? esa descomposicion es la que tienes que pasar como argumentos cuando creas el objeto Date. es decir, new Date(vard1[2], vard1[1] - 1, vard1[0]); // año, mes, dia;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 11/02/2010, 03:15
Avatar de catal  
Fecha de Ingreso: julio-2004
Ubicación: BCN
Mensajes: 199
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: Validar fecha (antes o despues)

Si no lo he entendido mal quedaria asi:

Código:
        var vargetdia = document.form1.fechainsert.value; 
	var vard1 = vargetdia.split("-");
	var myDate = new Date(vard1[2], vard1[1] - 1, vard1[0]); // año, mes, dia;
	myDate.setFullYear(vard1[0]+","+(vard1[1]-1)+","+vard1[2]);
	var today = new Date();
	
	alert(myDate);
	
	if (myDate>today)
	  {
	  alert("si");
	  }
	else
	  {
	  alert("n0");
	  }
Pero el en alert me sale NaN. No entiendo..... help please
__________________
Vive de manera que puedas mirar fijamente a los ojos de cualquiera y mandarlo al diablo.
-- Mencken, Henry-Louis --
  #4 (permalink)  
Antiguo 11/02/2010, 10:48
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Validar fecha (antes o despues)

esta linea no va, borralo.
Código:
	myDate.setFullYear(vard1[0]+","+(vard1[1]-1)+","+vard1[2]);
no veo por qué estas pasandole un string tal como "2010,1,10" a dicha funcion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 11/02/2010, 12:21
Avatar de catal  
Fecha de Ingreso: julio-2004
Ubicación: BCN
Mensajes: 199
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: Validar fecha (antes o despues)

Código:
        var vargetdia = document.form1.fechainsert.value; 
	var vard1 = vargetdia.split("-");
	var myDate = new Date(Number(vard1[2]), Number(vard1[1]),  Number(vard1[0])); // año, mes, dia;
	
	var today = new Date();
	
	if (myDate>today)
	  {
	  alert("Día superior");
	  }else{
	  alert("Día anteiror");
	  }
Zerokilled , gracias por las ideas, al final lo he conseguido.
A parte de borrar lo que me has dicho la var myDate me dava un alert NaN, eso me ha dado la idea de que igual no eran variables numericas.
Con el Number(var) me ha funcionado a la perfección.

Gràcias de nuevo.
__________________
Vive de manera que puedas mirar fijamente a los ojos de cualquiera y mandarlo al diablo.
-- Mencken, Henry-Louis --

Etiquetas: fechas
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 12:47.