Gå til innhold

age by date funksjon


Anbefalte innlegg

Skrevet

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

Videoannonse
Annonse
Skrevet (endret)
<?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
Skrevet

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:

Skrevet

Du sjekker i forhold til kl 00:00:00 på den dagen, litt usikker hvordan den tolker det, men prøv 00:00:01 og 23:59:59 og se om en av de gir rett. :)

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