Como Validar Una Fecha Con La Fecha De Hoy

La validación de cualquier dato de entrada de nuestro formulario es de suma importancia para la usabilidad este pueda tener en nuestro sistema. Evitar que se introduzca cualquier dato incorrecto en un sistema es uno de los requisitos exigidos a la informática y se ha convertido en una de las funciones mejor implementada por la sencilla razón de que la fiabilidad de un sistema informático depende de la información que contiene. Por ello, la validación constituye una función imprescindible en cualquier aplicación informática.

En este caso veremos como validar una fecha de una manera sencilla pero muy practica y útil. Con estas funciones conseguiremos manipular más comodamente los datos de la fecha (dia, mes, año), y después podremos crear una clase para nuestras funciones de validación como lo vimos en el tutorial ("Como crear una clase en PHP").

Primero necesitamos crear un nuevo registro en nuestro formulario y en nuestra base de datos con el nombre fecha.

Nota 1: aclaro que esta validación se hace en el serviidor, es decir,  que el programador tiene el control de cualquier susceso con la función y los datos respectivamente.

Aqui les presento la primera función que utilizaremos para la validación de la fecha:

 $str = '25/12/1986';
 $fecha = (explode('/', $str, 3));
 //valido dia
 $fecha[0] = $dia;
 $fecha[1] = $mes;
 $fecha[2] = $año;
 if($dia<= 31){
 echo 'es correcto';
 }else{
 echo 'es incorrecto';    
 }
 //valido mes
 if($mes< 13){
 echo 'es correcto';
 }else{
 echo 'es incorrecto';    
 }
 //valido año
 if($año< $today["year"]){
 echo 'es correcto';
 }else{
 echo 'es incorrecto';    
 }

En la primer linea tenemos la fecha, la coloco como tipo string y lo almaceno en una variable "$str" para poder utilizar la función explode.
En la segunda utilizo la función explode() para separar los 3 elementos ($dia, $mes, $año) y asignarlos a la variable tipo arreglo $fecha.
Después, ya separados los elementos puedo validar cada unos de ellos; el día siempre y cuando sea menor igual que 31, el mes que sea menor que 13 o menor igual que 12.
En el caso de la validación del año es diferente pues el año introducido se compara con el actual, por ejemplo: 1969 < 2010; esto lo consigo por medio de otra función que me devuelve la fecha actual, pero de donde se extrae solo el año.

La función utilizada es la siguiente:

 function today($timezone='America/Monterrey'){
 date_Default_Timezone_Set($timezone);
 //establece la zona horaria;segun el parametro.
 $datestr = date("j/n/Y/g/i",strtotime("now"));
 $arrDay = array ("","Ene", "Feb", "Mar", "Abr", "May", "Jun","Jul","Ago","Sep","Oct","Nov","Dic");
 $datearr = explode('/', $datestr);
 $today = array('year'=>$datearr[2],
 'month'=>$arrDay[9],
 'month_num'=>$datearr[1],
 'day'=>$datearr[0],
 'hour'=>$datearr[3],
 'minute'=>$datearr[4]);
 return $today;
 }

Esta función además de extraer solo el valor de año para nuestra comparación, también nos sirve para otro tipo de cuestiones, ya que nos devuelve la fecha y hora  en dicha zona horaria ($timezone='America/Monterrey'), además el número del mes , y si es el caso, hasta los segundos. Esta función se puede adaptar a muchos casos, por ejemplo : si queremos que nuestra página tenga por default la fecha y hora  al momento que accedemos.

 

Nota2:esta función en conjunto con las demás que vayamos creando para nuestras validaciones las podemos poner en una clase para tener una mejor organización.

Encuesta de Hoy

Qué gadget te gustaria tener?

Acerca de: MG

Es un proyecto sobre un sitio web, donde los usuarios podrán leer noticias y artículos de relevancia sobre todo lo que envuelve a la Tecnología; Escritos por profesionales en los ramos de Diseño Web, Programacion Web, TI, etc.

Leer más...

MundoGeek

Comentarios y Sugerencias por favor a: contactoarroba_1mundogeek.com, Gracias por tu preferencia.

Login Form