Gå til innhold

sjekke alder hvordan?


Anbefalte innlegg

Videoannonse
Annonse

du må gjøre fødselsdatoen til brukeren om til et tall vhja en funksjon i php (husker ikke funksjonen i farten) deretter henter du ut tiden nå vhja. date() deretter bruker du samme funksjon som i sted til å gjøre nåtiden om til et tall. du trekker disse tallene frahverandre og gjør det tilbake om igjen til et tall som kan skrives ut på den formen du vil

Lenke til kommentar

Det er mange måter å gjøre dette på. I utgangspunktet ville jeg vel anbefalt å regne det ut ved hjelp av konvertering til/fra et unix timestamp, men så kom jeg over denne kodesnutten:

 

function age($y,$m,$d) {
 list($now_d,$now_m,$now_y) = explode('.',date('d.m.Y'));

 if(($m > $now_m) || ($m == $now_m && $now_d < $d))
   $age = $now_y - $y  - 1;
 else
   $age = $now_y - $y;

 return $age;
}

 

Kilde: http://dennis.moellegaard.dk/php/age.php?source=1

 

Mulig den er til hjelp.

 

Lykke til :)

Lenke til kommentar

om ikke gozzer sin fungerer, er dette en jeg bruker (den har sitt opphav her fra hw-forumet:D):

 

 

<?php

function getAgeByDate($iDay, $iMonth, $iYear) {
$iTimeStamp = (mktime() - 86400) - mktime(0, 0, 0, $iMonth, $iDay, $iYear);
 $iDays = $iTimeStamp / 86400;
$iYears = floor($iDays / 365.25);
  return $iYears;
}

?>

Endret av fjartan
Lenke til kommentar
om ikke gozzer sin fungerer, er dette en jeg bruker (den har sitt opphav her fra hw-forumet:D):

 

 

<?php

function getAgeByDate($iDay, $iMonth, $iYear) {
$iTimeStamp = (mktime() - 86400) - mktime(0, 0, 0, $iMonth, $iDay, $iYear);
 $iDays = $iTimeStamp / 86400;
$iYears = floor($iDays / 365.25);
  return $iYears;
}

?>

Hadde det ikke vært en idé å rundet av svaret? Du kan jo risikere å få 23,2754654 år ut av det scriptet ditt... Hadde det ikke da vært best å runde det av til 23 år, sånn at du får ut et heltall?

Lenke til kommentar
om ikke gozzer sin fungerer, er dette en jeg bruker (den har sitt opphav her fra hw-forumet:D):

 

 

<?php

function getAgeByDate($iDay, $iMonth, $iYear) {
$iTimeStamp = (mktime() - 86400) - mktime(0, 0, 0, $iMonth, $iDay, $iYear);
 $iDays = $iTimeStamp / 86400;
$iYears = floor($iDays / 365.25);
  return $iYears;
}

?>

Hehe... dette er vel en meget begrenset løsning. Den vil vel ikke fungere på datoer før 01.01.1970!

 

Edit:

Det er heller ikke en bra båte å ta hensyn til skuddår på. Antar at det er derfor det deles på 365.25?

Endret av ????????
Lenke til kommentar

(den har sitt opphav her fra hw-forumet:D):

 

Vel akkurat den tviler jeg litt på. http://www.zend.com/codex.php?id=309&single=1

 

Edit: har lagd en kode som burde virke uansett årstall. Si fra om jeg har gjort noe feil en plass da..

 

<?php

function AgebyDayMonthYear($day, $month, $year)

{

 

//By dabear

 

$currentYear = date('Y');

$currentMonth = date('m');

$currentDayofMonth = date('d');

 

 

if($currentMonth > $month)

{

 

 

return ($currentYear - $year);

 

 

}

elseif($currentMonth < $month)

{

 

return($currentYear - $year -1);

 

}

else // ev. elseif($currentMonth == $month)

{

return($currentDayofMonth >= $day) ? ($currentYear - $year) : ($currentYear - $year -1);

 

}

 

 

 

 

}

 

echo '<div>hvor gammel er du?: ' . AgebyDayMonthYear(4, 11, 2003) . '</div>';

 

 

?>

Hm, en del mellomrom forsvant visst :ermm:

Endret av dabear
Lenke til kommentar
om ikke gozzer sin fungerer, er dette en jeg bruker (den har sitt opphav her fra hw-forumet:D):

 

 

<?php

function getAgeByDate($iDay, $iMonth, $iYear) {
$iTimeStamp = (mktime() - 86400) - mktime(0, 0, 0, $iMonth, $iDay, $iYear);
 $iDays = $iTimeStamp / 86400;
$iYears = floor($iDays / 365.25);
  return $iYears;
}

?>

Hehe... dette er vel en meget begrenset løsning. Den vil vel ikke fungere på datoer før 01.01.1970!

 

Edit:

Det er heller ikke en bra båte å ta hensyn til skuddår på. Antar at det er derfor det deles på 365.25?

:blush: skal jeg være helt ærlig var jeg ganske sikker på at det var deg jeg hadde fått den av, ????????, men det er vel ikke det da....

Lenke til kommentar
  • 1 år senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...