Gå til innhold

age by date funksjon


Anbefalte innlegg

<?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;

}

echo getAgeByDate($row->dag,$row->maaned,$row->aar); ?>

 

i dag. 1108, så er jeg 18. men scriptet skriver framdeles ut 17 :/ noen som vet hvorfor? å klokken på serveren er rett..

Lenke til kommentar
Videoannonse
Annonse
<?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;

}

echo getAgeByDate($row->dag,$row->maaned,$row->aar); ?>

 

i dag. 1108, så er jeg 18. men scriptet skriver framdeles ut 17 :/ noen som vet hvorfor? å klokken på serveren er rett..

9253734[/snapback]

Har ikke testet om det er korrekt, men ser ut som den trekker fra 1 dag i timestampen (86400 sek per dag). Slik at koden bør bli:

$iTimeStamp = mktime() - mktime(0, 0, 0, $iMonth, $iDay, $iYear);

 

Edit: grattis med dagen forresten!

Endret av tresko
Lenke til kommentar

Jeg tipper det er noe med avrundingen en plass. Kanskje floor() eller 365,25?

En annen måte å gjøre det på er denne:

PHP
<?php

$now mktime();

$year_now date('Y');

$birthday_this_year mktime(0,0,0$birth_month$birth_day$year_now);

if ($now >= $birthday_this_year) {  // Hvis bursdagen har vært i år

$age $year_now $birth_year;

} else { // Hvis bursdagen ikke har vært i år

$age $year_now $birth_year 1;

}

?>

Men med nærmere ettertanke er kanskje ikke den løsningenså pen heller. :hmm:

Lenke til kommentar

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...