Foros del Web » Programando para Internet » Javascript »

Validar fecha inicio sea menor que fecha fin

Estas en el tema de Validar fecha inicio sea menor que fecha fin en el foro de Javascript en Foros del Web. Hola amigos, Vereis tengo una funcion con la que pretendo avisar al usuario cuando ha introducido una fecha de inicio mayor que una fecha fin. ...
  #1 (permalink)  
Antiguo 03/10/2013, 03:49
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Validar fecha inicio sea menor que fecha fin

Hola amigos,

Vereis tengo una funcion con la que pretendo avisar al usuario cuando ha introducido una fecha de inicio mayor que una fecha fin.


Código Javascript:
Ver original
  1. function validar() {
  2.         var inicio = document.getElementById('fecha_inicio').value;
  3.         var finalq  = document.getElementById('fecha_fin').value;
  4.         inicio= new Date(inicio);
  5.         finalq= new Date(finalq);
  6.         if(inicio>finalq)
  7.         alert('La fecha de inicio puede ser mayor que la fecha fin');
  8.         }

y en el form añado "onsubmit="validar();""

El problema es que no me funciona, no tengo grades conocimientos en javascript por lo que no se si la sintaxis es correcta.

A ver si alguien me puede aclarar que puede estar pasando.

Un saludo!
  #2 (permalink)  
Antiguo 03/10/2013, 04:06
Avatar de javioreto  
Fecha de Ingreso: enero-2005
Ubicación: C:\España\Bilbao
Mensajes: 1.212
Antigüedad: 19 años, 3 meses
Puntos: 15
Respuesta: Validar fecha inicio sea menor que fecha fin

Lo correcto es comparar la fecha por segmentos de año, mes, día por separado:

Código Javascript:
Ver original
  1. function compare_dates(fecha, fecha2)  
  2.   {  
  3.     var xMonth=fecha.substring(3, 5);  
  4.     var xDay=fecha.substring(0, 2);  
  5.     var xYear=fecha.substring(6,10);  
  6.     var yMonth=fecha2.substring(3, 5);  
  7.     var yDay=fecha2.substring(0, 2);  
  8.     var yYear=fecha2.substring(6,10);  
  9.     if (xYear> yYear)  
  10.     {  
  11.         return(true)  
  12.     }  
  13.     else  
  14.     {  
  15.       if (xYear == yYear)  
  16.       {  
  17.         if (xMonth> yMonth)  
  18.         {  
  19.             return(true)  
  20.         }  
  21.         else  
  22.         {  
  23.           if (xMonth == yMonth)  
  24.           {  
  25.             if (xDay> yDay)  
  26.               return(true);  
  27.             else  
  28.               return(false);  
  29.           }  
  30.           else  
  31.             return(false);  
  32.         }  
  33.       }  
  34.       else  
  35.         return(false);  
  36.     }  
  37. }

Desconozco si lo que tu intentas de declarar la variable como date y hacer una comparación a lo grande funciona, yo al menos nunca lo he hecho así.
  #3 (permalink)  
Antiguo 03/10/2013, 07:05
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 inicio sea menor que fecha fin

buenas...

Cita:
Iniciado por javioreto Ver Mensaje
Lo correcto es comparar la fecha por segmentos de año, mes, día por separado...
¡¡¿¿en serio??!! bueno, no digo que sea imposible, pero si es una forma muy rebuscada habiendo otra opción más rápida y eficaz.

@javioreto, seguramente el problema es el momento de crear los objetos Date, y por ello te da error al comparar ambas fechas. le estás pasando un string del que desconocemos cuál es el formato. por otro lado, para crear un objeto Date tienes que pasarle múltiples argumentos según los valores que se tenga o la exactitud de una fecha/hora que se quiera obtener. una opción es que pases el string por Date.parse para obtener el timestamp, pero tengo entendido que cada intérprete puede tener su forma de entender el formato del string o incluso no entenderlo. aunque no tengo claro si esto ya ha sido estandarizado en los intérpretes, por lo que es mejor no usar esta última opción. lo mejor es que primero controles un formato de fecha para el campo, luego divides cada parte de la fecha (dia, mes, año), y finalmente usas esos componentes para crear el objeto Date.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 03/10/2013, 07:29
Avatar de dAvidcA  
Fecha de Ingreso: septiembre-2009
Ubicación: /home/dev/
Mensajes: 73
Antigüedad: 14 años, 7 meses
Puntos: 7
Respuesta: Validar fecha inicio sea menor que fecha fin

Hola franjgg, se puede hacer con Date.parse() siempre y cuando tenga el formato MES/DIA/AÑO.

Aquí un ejemplo:

Código Javascript:
Ver original
  1. //Formato MES/DIA/AÑO
  2. var primera = Date.parse("10/01/2013"); //01 de Octubre del 2013
  3. var segunda = Date.parse("10/03/2013"); //03 de Octubre del 2013
  4.  
  5. if (primera == segunda){
  6.     alert("Primera es igual Segunda");
  7. } else if (primera > segunda) {
  8.     alert("Primera mayor que Segunda");
  9. } else{
  10.     alert("Segunda mayor que Primera");
  11. }

Saludos.

Etiquetas: fecha, funcion, inicio, menor
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 21:36.