webForumDet fria alternativet

ytterliggare problem...

PHPur PHP

6 svar · 280 visningar · startad av mahedel

Medlem sedan juli 2002105 inlägg
Frågan#1

detta script tar och räknar ut hur gammal man är fast det är en sak som inte fungerar. Idag så skulle användaren i fråga vara 20 år gammal fast den är bara 19 år och om man byter till 1983-01-05 så blir användaren 20 år eftersom det har gått en dag så jag vill att den tar om visar 20 år idag som det ska... hoppas ni förstår mig...

tack på förhand

Martin

<?
$fodelsedatum = "1983-01-06";
list($Y,$M,$D)=split("-",date("Y-m-d", strtotime("now")));
list($y,$m,$d)=split("-",date("Y-m-d", strtotime("$fodelsedatum")));

$alder=(($M<$m)||(($M==$m)&&($D<=$d)))?($Y-$y-1):($Y-$y);
echo $alder;
?>
Medlem sedan maj 2002647 inlägg
#2

Det är för att dagen måste passera för att den ska räknas in...

Medlem sedan feb. 20002 612 inlägg
#3
$alder=(($M<$m)||(($M==$m)&&($D<=$d[b][red]-1[/red][/b])))?($Y-$y-1):($Y-$y);

Då borde det väl bli rätt...

Medlem sedan maj 2002647 inlägg
#4

Njae... om dagen är 01 eller 1 (vad det nu blir) så blir det ju 0 eller 00... så det borde väll inte gå?

Medlem sedan feb. 2000211 inlägg
#5

Jag tror att man måste blanda in PHPs datumfunktioner för att det ska funka.

Hittade denna lilla kod snutt på php.net

// first get the current date 
$nowdate = mktime(0,0,0,date("m"),date("d"),date("Y")); 

// this is my birthday 
$birthday = mktime(0,0,0,"10","28","1980"); 
// calculate my age in years 
$age=intval(($nowdate-$birthday)/(60*60*24*365)); 

echo "I'm now $age years old.";
Medlem sedan maj 2002647 inlägg
#6

Fast den kommer ju inte stämma vid skottår.

Jag rotade lite och detta är ett script jag använder.. funkar prima ;)

<?PHP
$b_year = substr($row['user_age'],0,4);
$b_month = substr($row['user_age'],5,2);
$b_day = substr($row['user_age'],8,2);

$time = getdate(time());
$n_year = $time["year"];
$n_timestamp = time();

//This year birthday:
$b_timestamp = mktime(0,0,0,$b_month,$b_day,$n_year);

//Calculate age:
$age = $n_year - $b_year;
$age--;

if($n_timestamp >= $b_timestamp) {
  $age++;
}

echo $age;
?>
Medlem sedan feb. 2000211 inlägg
#7

hmm klart att det inte gör, kollade inte direkt på scriptet, bara klipte och klistrade :r ska göra bot och bättring :OO

135 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)