Blog Reacción Estudio

¡Tu zona de aprendizaje!

Funciones para validar fechas con Javascript

Seguramente a la hora de validar fechas con Javascript has tenido que ponerte a buscar funciones para relizar estas validaciones.

Bien, pues hoy os vamos a dejar una serie de funciones listas para utilizar:

  • Validar el formato de la fecha:
function validarFormatoFecha(campo) {
	var RegExPattern = /^\d{1,2}\/\d{1,2}\/\d{2,4}$/;
	if ((campo.match(RegExPattern)) && (campo!='')) {
		return true;
	} else {
		return false;
	}
}

Esta función nos validará utilizando una expresión regular si nuestra variable corresponde con el formato de una fecha corriente, como por ejemplo – 13/09/1985. Devolverá true si la fecha es correcta y false si es incorrecta o la variable está vacía.

  • Validar si la fecha introducida es real:

Para validar si la fecha introducida es real, es decir, que corresponde al calendario, tenemos las 2 funciones siguientes.

function existeFecha(fecha){
	var fechaf = fecha.split("/");
	var day = fechaf[0];
	var month = fechaf[1];
	var year = fechaf[2];
	var date = new Date(year,month,'0');
	if((day-0)>(date.getDate()-0)){
		return false;
	}
	return true;
}

function existeFecha2 (fecha) {
	  var fechaf = fecha.split("/");
	  var d = fechaf[0];
	  var m = fechaf[1];
	  var y = fechaf[2];
	  return m > 0 && m < 13 && y > 0 && y < 32768 && d > 0 && d <= (new Date(y, m, 0)).getDate();
}

Estas dos funciones serían las equivalentes a checkdate en PHP.

  • Validar si la fecha introducida es anterior o menor a la actual:
function validarFechaMenorActual(date){
	var x=new Date();
	var fecha = date.split("/");
	x.setFullYear(fecha[2],fecha[1]-1,fecha[0]);
	var today = new Date();

	if (x >= today)
	  return false;
	else
	  return true;
}

Esta función nos indica si la fecha introducida es anterior o menor que la fecha actual. Si devuelve true significa que la fecha es anterior, y si devuelve false significa que la fehca introducida es posterior a la actual.

Lo mejor es combinar estas funciones para validar nuestra fecha lo máximo posible y evitar que se introduzcan fechas erróneas. Por eso siempre deberíamos hacer lo siguiente:

var fecha = "13/09/1985";
if(validarFormatoFecha(fecha)){
	if(existeFecha(fecha)){
		alert("La fecha introducida es correcta.");
	}else{
		alert("La fecha introducida no existe.");
	}
}else{
	alert("El formato de la fecha es incorrecto.");
}
  • roimar urbano

    hola gracias por el parte me ha sido de mucha ayuda, es tambien posible validar la hora.

    validar algo como 01/02/2014 14:50 es anterior a 01/02/2014 14:55

  • Diego Armando Lira

    me funciono! muchas gracias

  • maluchinha

    Genial el post, me ayudó mucho ya que hay muchas funciones de validación de fechas pero muchos de ellos a mi, al menos, no me funcionaron y estas en cambio me fueron genial. ¡Gracias por vuestro trabajo!
    PS. Lo que me echó para atrás a la hora de escribir este comentario es el registro, normalmente ni me molesto pero bueno… creo que esta vez se merecía una excepción :)

  • Andrea Molina Ruiz

    Hola, como añadiria esta funcion a mi script?
    function validarFormatoFecha(campo) {
    var RegExPattern = /^d{1,2}/d{1,2}/d{2,4}$/;
    if ((campo.match(RegExPattern)) && (campo!=”)) {
    return true;
    } else {
    return false;
    }
    }

    Le paso el valor de fecha que ha introducido el usuario en el ptompt, pero no no me valida el formato.

    Gracias!!

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.     ACEPTAR