29. januar 2003 - 23:36
Der er
13 kommentarer og 1 løsning
Vis alder ud fra date("d-m-Y");
Har set mig svimmel på php.net for at finde ud af hvordan jeg laver eks. 27-12-1963 om til antal år, altså alderen lige p.t. Nogen der kan hjælpe?
Annonceindlæg fra SuperOffice
30. januar 2003 - 00:02
#1
30. januar 2003 - 00:09
#2
hmm, der har jeg været, men det får jeg ikke til at funke med at jeg gerne vil vise antal år
30. januar 2003 - 00:10
#3
time() går jo kun tilbage til 1.jan.1970 Men kan du gi' et eksempel på hvordan du ville gøre det med strtotime() ?
30. januar 2003 - 00:19
#4
Time giver dags dato (i sekunder) siden 1970. Men date giver "negative sekunder" for datoer før 1970. Helt tilbage til omkring forrige århundredeskifte - sådan ca. Men om det er hvad du skal bruge til at løse opgaven skal jeg nok blande mig uden om.
30. januar 2003 - 00:24
#5
æh, det er sgu da vist nok, erik. at den ku' gi' negativt havde jeg godt læst, men ikke "taget til mig". Må lige prøve igen! :O)
30. januar 2003 - 02:00
#6
hmm, ved sgutte, nu sidder jeg på en windows, og der strækker date formatet sig ikke længere tilbage end 1970-01-01 Bruger lige nu flg. (for meget kode)-kode: (men det virker! :O) ) <?php $birth = $vis_info->birth; //i dette tilfælde, 27-12-1963 if(!empty($birth)) { //Ja, hvis feltet nu er tomt $nu = date("d-m-Y", time()); $split1 = explode("-", $birth); $split2 = explode("-", $nu); if($split2[1] . $split2[0] >= $split1[1] . $split1[0]) { $antal_aar = $split2[2]-$split1[2]; }else{ $antal_aar = $split2[2]-$split1[2]-1; } echo $antal_aar ." år"; }else{ echo" "; } ?>
30. januar 2003 - 02:01
#7
Meget undskyld erikjacobsen, men jeg er ikke 100% sikker på at du har ret. Jeg håber det dog, da det er et problem som jeg selv har måttet slås med af og til, men indtil nu har opgivet. Men ifald du har ret - og det håber jeg da - hvordan skal den så skæres med de "gamle" datoer. Forsøgte selv med: <html> <head></head> <body> <? $dato = mktime(01, 00, 00, 05, 14, 1953); echo "Med mktime fås: ".$dato."<br>"; $dato2 = (-101659824); echo "Med date fås: ".date("j / n - Y",$dato2)."<br>"; ?> </body> <html> Her er hvad jeg fik ud af det: Med mktime fås: -1 Warning: unexpected error in date() in c:\inetpub\wwwroot\datotest.php on line 9 Med date fås:
30. januar 2003 - 09:40
#8
Forslag: <? $nu = date("d-m-Y"); $dele = explode("-", $nu); $år = "28-12-1959"; $dele1 = explode("-", $år); echo $dele[0] . " : " . $dele[1] . " : " . $dele[2] . "<br />\n"; if($dele[1] < $dele1[1]) { //check om det er i denne md. man har føds'da. $alder = $dele[2] - $dele1[2] - 1; } else { $alder = $dele[2] - $dele1[2]; } echo $alder; ?>
30. januar 2003 - 09:50
#9
sostack->Hvad er lige forskellen på dit og det jeg bruger nu? Bortset fra du kun tjekker på måneden? Men ellers, så er man åbenbart nødt til at lave et eller andet kringlet for at vise en alder på en windows, hvis tiden er før 01011970
30. januar 2003 - 16:01
#10
hmmm - tænke på om ikke kunne trække de to datoer fra hinanden, altså vende dem om til yyyymmdd - der er absolut IKKE gennemtænkt, men blot en strøtanke, som der måske kan køres vidre på??? $bd="28-12-1959"; $dd = date("Ymd"); //idag $aarstal = substr($bd, -4); $md = substr($bd, -7, -5); $dag = substr($bd, -10, -8); $reverse = $aarstal.$md.$dag; $alder = $dd-$reverse; //ja ja det giver et stort tal, men kan det regnes om ??
30. januar 2003 - 22:41
#11
Hvis du vil ha' lidt point for din tid, avminarm, så smid et svar
30. januar 2003 - 23:26
#12
Tak for points. Sammenlignet med de andre synes jeg ikke just at jeg har gjort den store indsats.
31. januar 2003 - 09:20
#13
det er ok - det kan næppe bruges ;o)
31. januar 2003 - 10:27
#14
æh, ja, jeg kom til at trykke på accepter i stedet for submit, men det gør sgutte noget :O) Takker for hjælp
Vi tilbyder markedets bedste kurser inden for webudvikling