Programación básica con php (validar fechas)


Otro problema que tenemos con el ejemplo, es el manejo de las fechas, dado que si lo dejamos de esa manera tendremos dos problemas:

  1. Se puede escribir cualquier cosa
  2. Se pueden capturar fechas inexistentes como 32 de marzo de 2010

Asi que para evitar esto separaremos la fecha en sus componentes para que se vea de la siguiente forma:

Como el codigo ya se esta haciendo algo largo, presentare primero la parte del body o cuerpo de la pagina para que vean como se genero el formulario ya que hemos incluido algunos codigos de javascript dentro de este y hay que analizarlo

Observemos que creamos un «select» llamado anio en el que se ha agregado un codigo javascript en el que usamos un ciclo for para crear etiquetas «option» para de esta manera agregar una lista de años, si desea modificar la lista solo cambie el inicio y el fin del ciclo for. Este codigo de basa en el DOM para crear etiquetas con la instrucción «createElement», crear textos que van dentro de dos etiquetas con «createTextNode» e integrar los elementos de texto a las etiquetas creadas con la instrucción appendChild, se asigna a la etiqueta el valor de la etiqueta con el atributo value y finalmente se agrega al select con la instrucción appendChild

Mas adelante vemos un select llamado fecha que presenta la lista de los meses, que como con pocos y siempre fijos se puede hacer manual. Note que el ultimo select que esta reservado para los días del mes esta vacio, esto se debe a que este se llenara dependiendo del año y del mes que se seleccione, esto para que la captura de la fecha siempre sea una fecha valida.

El codigo que agregara los dias se llama a traves del metodo onblur en el select llamado fecha. A continuación presento el codigo que hace esta carga dinamica de los dias del mes y que se ubica en el head de la misma pagina

El codigo en primera captura los datos del año y del mes que estan en el formulario, esto para calcular cuantos dias se deben agregar, pero antes de eso, se tienen que eliminar todos los elementos de la lista de día con un ciclo for y la instruccion removeChild, con el objetivo de vaciar la lista de días y estos no agreguen a los que ya estan.

Observe que despues se revisa el mes del que se trata, en el primer caso se evalua que si se trata del mes de febrero y de ser asi se evalua si el año en cuestion es bisiesto para que el ciclo que agrega los días sea de 1 a 28 o de 1 a 29 si el año en efecto es bisiesto.

En los otros casos solo se revisa si es un mes de 30 o 31 dias. Con esto logramos validar las fechas, pero aun faltan algunas modificaciones, dado que la fecha se va a enviar separada, así que ahora toca modificar el php para que reciba la fecha separada y la reuna antes de almacenarla.

A continuación les dejo el enlace para descargar el ejemplo con las modificaciones mostradas

https://www.sugarsync.com/pf/D280440_6119225_819521

¿Qué estas pensando?

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.