Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Calcular la edad con Javascript y php

Estas en el tema de Calcular la edad con Javascript y php en el foro de Javascript en Foros del Web. Hola, Amigos estoy capturando una fecha de nacimiento y con una función calculo la edad, pero si cumple el 05-03-1989, me dice que tengo 23 ...
  #1 (permalink)  
Antiguo 03/06/2013, 08:10
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 2 meses
Puntos: 0
Calcular la edad con Javascript y php

Hola,

Amigos estoy capturando una fecha de nacimiento y con una función calculo la edad, pero si cumple el 05-03-1989, me dice que tengo 23 y deberia decirme que tengo 24 años.

Me resta el año, pero no está tomando en cuenta el día y mes.

En este formato captura el PHP a BD: 05-03-1989

Codigo Javascript:
Código HTML:
	function calculaedad($fechanacimiento){
    list($dia,$mes,$ano) = explode("-",$fechanacimiento);
    $dia_diferencia   = date("D") - $dia;  
	$mes_diferencia = date("M") - $mes;
	$ano_diferencia  = date("Y") - $ano;
    if ($dia_diferencia < 0 || $mes_diferencia < 0) $ano_diferencia--;
    return $ano_diferencia;
}

echo calculaedad (FECHA_N)
  #2 (permalink)  
Antiguo 03/06/2013, 08:47
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Calcular la edad con Javascript y php

lo mejor es que uses la clase DateTime:

Código PHP:
Ver original
  1. $date_from = new \DateTime('1989-03-05 00:00:00');
  2. $date = new \DateTime();
  3. $diff = $date->diff($date_from);
  4. echo $diff->format('%Y - %m - %d');

¿también tienes problemas con Javascript?: si no reporta el tema para que lo muevan a PHP
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 03/06/2013, 08:57
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Calcular la edad con Javascript y php

Me da error el codigo que me dices.

Necesito solucionar el codigo que copie, creo que tengo un error en el Javascript ya que solo resto el año, y necesito que reste dia y mes.
  #4 (permalink)  
Antiguo 03/06/2013, 09:05
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Calcular la edad con Javascript y php

¿que versión de PHP tienes?, el código que te di no puede dar error a no ser que cambiaras de forma incorrecta el año mes y día.

postea tus avances para ver donde falla.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 03/06/2013, 09:12
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Calcular la edad con Javascript y php

El codigo está bien, estoy fallando es en capturar la variable PHP.

Código PHP:
Ver original
  1. $date_from = new \DateTime('". $row["FECHA_N"] ."');
  2. $date = new \DateTime();
  3. $diff = $date->diff($date_from);
  4. echo $diff->format('%Y');

Me da error, no estoy capturando la variable FECHA_N que esta dentro de un while.
  #6 (permalink)  
Antiguo 03/06/2013, 09:15
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Calcular la edad con Javascript y php

para eso FECHA_N debe se tener un formato que DateTime reconozca, como: YYYY-MM-DD, verifica ello, NO necesitas comillas dobles para eso:

Código PHP:
Ver original
  1. $date_from = new \DateTime($row["FECHA_N"]);
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 03/06/2013, 09:45
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Calcular la edad con Javascript y php

Perfecto, solucionado. Gracias Maycol.

El codigo para calcular edad es:
Código PHP:
Ver original
  1. $date_from = new \DateTime('$FECHA_NACIMIENTO');
  2. $date = new \DateTime();
  3. $diff = $date->diff($date_from);
  4. echo $diff->format('%Y');

Etiquetas: edad, php
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 14:21.