miércoles, 15 de junio de 2011

Es mejor usar funciones de mysql para calcular un cunpleaños

El problema es sencillo:
Se desea mostrar de una lista de empleados el empleado que cumpla años el día de hoy.

Como primera opción se pensó en recorrer toda la lista de empleados en la vista haciendo explode() de la fecha y comparando el día y mes. Pero esta opción además de ser tediosa agregaría mucho código en la vista que no seria solo para mostrar los datos sino para calcular un resultado lo caual iría en contra de la filosofía MVC.

Asi que la mejor opción, al menos para mi, fue obtener desde el controlador un arrglo con los empledos que cumplieran años en el día actual.

El código seria más o menos asi:

$this->set('cumplen', $this->Empleado->find('all', array('conditions'=>array('date_format(fecha_nacimiento,\'%m%d\') = date_format(now(),\'%m%d\')'))));
De esta manera se estrían comparando cadenas como '0615' para junio 15 de cualquier año.

También podrían combinarse con opciones como field o containable para traer solo los datos que sean necearios.

No hay comentarios:

Publicar un comentario