Ver Mensaje Individual
  #278 (permalink)  
Antiguo 13/08/2010, 21:14
Avatar de silvanha
silvanha
 
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Competencias PHP

gracias Carlos, pensé que era la única jugando xDDDDD así que no veaaaaas!! XD

entendí lo mismo que tu, así que lo traigo, estoy casi segura de que tiene alguna deficiencia o de que se puede mejorar, hice por ahí unas trampas xDDDD pero por lo menos para los ejemplos que pusieron funciona, intente con algunos otros jejejeje

Código PHP:
Ver original
  1. function edad($fecha, $valor=false){
  2.     $siguiente = 0;
  3.     $dias = 0;
  4.     $aux = explode("-",$fecha);
  5.     $dia = $aux[0]; $mes = number_format($aux[1]);
  6.     $diaactual = date('j'); $mesactual = date('n');
  7.     $hoy = mktime(0,0,0,date('n'),date('j'),date('Y'));
  8.     $nacimiento = strtotime($fecha);
  9.     $dias = floor(($hoy - $nacimiento)/(365*24*60*60));
  10.    
  11.     if($mes < $mesactual){
  12.         $siguiente = mktime(0,0,0,$mes,$dia,date('Y')+1);      
  13.     }elseif($mes > $mesactual){
  14.         $siguiente = mktime(0,0,0,$mes,$dia,date('Y'));
  15.         $dias = $dias - 1;
  16.     }elseif($dia < $diaactual){
  17.         $siguiente = mktime(0,0,0,$mes,$dia,date('Y')+1);
  18.     }elseif($dia > $diaactual){
  19.         $siguiente = mktime(0,0,0,$mes,$dia,date('Y'));
  20.         $dias = $dias - 1;
  21.     }else{
  22.         $siguiente = mktime(0,0,0,$mes,$dia,date('Y')+1);
  23.     }
  24.     if($valor){
  25.         $dias = ($siguiente - $hoy)/(24*60*60);
  26.     }          
  27.     return $dias;
  28. }


con estos ejemplos lo probe, me puse a contar en mi calendario, en una de esas tampoco se sumar jajajaja
Código PHP:
Ver original
  1. edad('14-08-1990'); // Devuelve: 20
  2. edad('15-08-1990'); // Devuelve: 19
  3. edad('15-08-1990',true); // Devuelve: 1
  4. edad('14-08-1990',true); // Devuelve: 365 (o 366 si el año es año bisiesto)
  5. edad('13-08-1990',true); //Devuelve 364
  6. edad('08-04-1990',true); //Devuelve 237
  7. edad('13-09-1990',true); //Devuelve 30

critiquenmeeee (6) que de eso se trata

PD: Creo que necesitamos el code de spoiler que hay en otros foros para poder ocultar cosas..
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)

Última edición por silvanha; 13/08/2010 a las 21:30