Foros del Web » Programando para Internet » PHP »

Consulta de la edad

Estas en el tema de Consulta de la edad en el foro de PHP en Foros del Web. hola amigos....paso a contarles el problema que tengo, resulta que tengo una base de datos en una tabla los datos personales de los usuarios y ...
  #1 (permalink)  
Antiguo 01/09/2004, 22:01
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
Consulta de la edad

hola amigos....paso a contarles el problema que tengo, resulta que tengo una base de datos en una tabla los datos personales de los usuarios y en la otra las preferencias.
Ejempliço:

datospersonales
-nombre
-apellido
-email
-fecha_de_nacimiento
preferencias
-musica
-hobbies

mi pregunta es como hago para saber que edad tiene el usuario si en el campo fecha_de_nacimiento guardo los datos de esta forma dia/mes/año
quiero que me de como resultado de la siguiente manera.

nombre apellido edad email musica hobbie

desde ya muchas gracias
__________________
Lo que se hace por AMOR esta mas allá del BIEN y del MAL - Friedrich Nietzsche
http://www.hispanogeek.com.ar
Desarrollador IT -
  #2 (permalink)  
Antiguo 02/09/2004, 09:10
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 13 años, 9 meses
Puntos: 0
bueno pues divides la fecha con el explode

list($dia,$mes,$año)=explode("/",$fecha_de_nacimiento);

depues restas $año - $año_actual

para sacar el año actual

$año_actual=date("Y");


listo
  #3 (permalink)  
Antiguo 03/09/2004, 10:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No dices que Base de datos usas (Mysql?) pero estas tienen su própio SQL para hacer ese tipo de cálculos sobre fechas ..

Un ejemplo para Mysql sería: (siempre y cuando tus campos de fecha de nacimeinto sean DATE o DATETIME):

http://dev.mysql.com/doc/mysql/en/Da...functions.html
(tienes ejemplos en los comentarios de los usuarios creo).

Un saludo,
  #4 (permalink)  
Antiguo 07/09/2004, 00:01
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
gracias the omars y cluster, la BD que uso es mysql y el campo donde guardo la fecha de nacimiento es un varchar del tipo dd/mm/aa la solucion que me dio the omars esta buena pero es imprecisa ya que un usuario nacio en 10/12/1981 segun el scripts tiene 23 años, pero esto es incorrecto ya que recien en diciembre cumple esa edad, si alguien sabe como solucionar este incomveniente se lo agredeceria muchisimo.

Desde ya muchas gracias
__________________
Lo que se hace por AMOR esta mas allá del BIEN y del MAL - Friedrich Nietzsche
http://www.hispanogeek.com.ar
Desarrollador IT -
  #5 (permalink)  
Antiguo 10/09/2004, 20:57
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
alguien tiene alguna idea ???......desde ya muchas gracias
__________________
Lo que se hace por AMOR esta mas allá del BIEN y del MAL - Friedrich Nietzsche
http://www.hispanogeek.com.ar
Desarrollador IT -
  #6 (permalink)  
Antiguo 12/09/2004, 10:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
fmmeson
Si quieres usar el método SQL .. lo primero que tienes que hacer es tratar las fechas como deben ser: en campos DATE o DATETIME (para tu caso DATE sobra) y desde ahí aplicar las funciones que te mencioné además de "DATE_FORMAT()" para obtener tus fechas en el formato que gustes.

Insisto .. deberías leer el link del manual oficial de Mysql que te dejé. Las fechas debes tratarlas como tal .. sino se complican hacer cosas como las que propones y sobre todo que baja en picado el rendimiento de tus consultas SQL haciendo cosas en "PHP" que se -deben- solventar con SQL.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:23.