Tengo usuarios en una base de datos MySQL, donde se almacenan sus cumpleaños en un formato DATE
(aaaa-mm-dd). Quiero seleccionar usuarios en la base de datos con PHP que tengan un rango de edad determinado.Seleccionar todos los usuarios que están dentro de un cierto rango de edad
Lo que tengo es una edad mínima (18) y una edad máxima (21). Sé que puedo hacer algo con BETWEEN, pero el problema es que solo sé los años y no las fechas.
¿Alguien tiene alguna sugerencia sobre cómo puedo hacer esto?
Esto es lo que estoy haciendo actualmente:
function leeftijden($age) {
$morgen['day'] = date('d');
$morgen['month'] = date('m');
$morgen['year'] = date('Y') - $age;
$datum = $morgen['year'] .'-' .$morgen['month'].'-' .$morgen['day'];
return $datum;
}
Entonces hago esto:
$maxDatum = leeftijden(18);
$minDatum = leeftijden(32);
$sqlRijder = "SELECT * FROM rijder WHERE geboortedatum between '".$minDatum."' AND '".$maxDatum."'";
Pero esto no funciona al 100%.
¿Cómo solo puedo seleccionar usuarios que tengan entre 18 y 21 años de edad?
has impresa la fecha para asegurarse de que el son correctas? también puede hacer 'date ('Ym-d', strtotime (" - 18 years "));' or 'date ('Ym-d', strtotime (" - $ years years "));' –
Of Por supuesto, no funcionará al 100% - porque la "edad" es un número, no viene en el formato de fecha. Así que tomar la 'fecha' actual y restar la edad dará un resultado inexacto. – alfasin
alfasin ... que es lo que hago en el leeftijden() la función –