Hola,
Si tengo X años hoy significa:
Mi cumpleaños de X años es entre hoy y mañana hace un año.
Ejemplo:
Tengo 70, significa mi cumpleaños es entre el once de noviembre 2019 y el diez de noviembre 2020.
Vea qué funciones hay.
www.limesurvey.org/manual/ExpressionScri...mplemented_functions
Entonces tenemos:
mktime
www.php.net/manual/es/function.mktime.php
y
date
www.php.net/manual/es/function.date.php
Así es como calculamos los datos
1. este dia antes de X años:
date('Y-m-d',mktime(0,0,0,date("n"),date("j"),date("Y")-Q1))
2. este dia antes de X+1 años:
date('Y-m-d',mktime(0,0,0,date("n"),date("j"),date("Y")-Q1-1)))
Q1 el codigo de la pregunta por la edad.
Y así validamos:
is_empty(self) OR (self le date('Y-m-d',mktime(0,0,0,date("n"),date("j"),date("Y")-Q1)) and self gt date('Y-m-d',mktime(0,0,0,date("n"),date("j"),date("Y")-Q1-1)))
is_empty(self) para para evitar que aparezca un mensaje de error si no se ingresa nada.
Y un mensaje de validación como
Fecha mas grande que {date('d.m.Y',mktime(0,0,0,date("n"),date("j"),date("Y")-Q1-1))} y más pequeño o igual {date('d.m.Y',mktime(0,0,0,date("n"),date("j"),date("Y")-Q1))}
Y el ejemplo:
Joffm