Pregunta:
¿como validar fechas en java script?
NicoArg
16 years ago
necesito validar dos campos con fechas, (txtFechaDesde y txtFechaHasta), por ende, la fechaDesde debe ser si o si menor a la fechaHasta, he estado probando haciendo la diferencia de las fechas (hasta-desde) y si me arroja un valor negativo, quiere decir que la fecha desde es mas grande que la fecha hasta. el problema esta en que con esa validacion, al igual que todas las que probe solo validan los dias es decir que se las puede vulnerar.
Ej: desde='10/03/2009' hasta='15/02/2009'
todas las funciones darian por correcto, pero en realidad desde es mas grande, por lo que la validacion estaria mal.
Ayudaa!
gracias
Cuatro respuestas:
LFJAIMESB
16 years ago
Hola,



Espero poder ayudarte nuevamente de la mejor manera.





Si lo que quieres es comparar fechas puedes hacerlo manualmente con los campos, haciendo un split



ejemplo:



fecha1=desde.split("/");

fecha2=hasta.split("/");



debes de ir validando el tercer campo y el segundo para identificar si es menor, estos corresponde a año y mes. ya que dia puede ser mayor en el primer caso que el segundo y por ende te mandará el mismo resultado que hasta ahora te manda.



tu comparacion seria asi



if(fecha1[2]
//Si es menor no tienes que comparar los meses ni los dias ya que si el año desde es 2009 y el hasta 2010 significa que puede ser mayor el mes por lo que no hay que compararlo simplemente mandar el return true;



}

else if(fecha1[2]==fecha2[2]){

//Si es igual comparas los meses y repites estos dos paso primero verificas que el mes de desde sea menor al de hasta si es asi ahi terminas el proceso si son iguales comparas los dias y en dias vuelves a realizar el proceso de estos tres if - else caro esta que deben ser anidado en donde corresponde.



}

else{

//Si no quiere decir que fecha1 es mayor a fecha dos por lo tanto esta fuera de tu rango aqui mandas el mensaje que la fecha desde no pude ser mayor a la de hasta



alert("fecha desde debe ser menor a la fecha hasta");

}







Saludos espero haberte podido ayudar
anonymous
16 years ago
En JavaScript existe el objeto Date.



Puedes tomar el contenido de los TXT, hacerles un split('/').

Ejemplo: var fechaPart = txtFechaDesde.value.split('/');

Tomar el constructor de Date(yy,mm,dd)

Ejemplovar dia = new Date(fechaPart[2],fechaPart[1],fechaPart[0])

Despues haces una simple comparacion entre los dos objetos Date

if(diaDesde>diaHasta)

O tu 'if' como lo necesites, yo lo he hecho muchas veces asi.



Por cierto, no trates de restar o sumas los objetos Date, por que no es un error, pero no es exacto, en cambio en la comparacion si lo es.
anonymous
16 years ago
te dejo un link con la respuesta

http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/respuestas/1129072/comparar-fechas-en-javascript



y otro:



http://www.w3schools.com/js/js_obj_date.asp



SUERTE...
Haiver
16 years ago
function restarFechas(f0, f1) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2}) (\/|-)(\d{4})$/;

var fecha0 = f0;



var matchArray0 = fecha0.match(datePat);

month0 = matchArray0[3];

day0 = matchArray0[1];

year0 = matchArray0[5];





var fecha1 = f1;

var matchArray1 = fecha1.match(datePat);

month1 = matchArray1[3];

day1 = matchArray1[1];

year1 = matchArray1[5];



var fechaIni = new Date();

fechaIni.setFullYear(year0, month0, day0)





var fechaFin = new Date();

fechaFin.setFullYear(year1, month1, day1)



var resta = fechaFin - fechaIni

resta = resta/86400000

return(resta);



}





y puedes utilizarla...:



-- restarFechas('10/03/2009' ,'15/02/2009')

-- restarFechas(txtFechaDesde, txtFechaHasta)


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...