Avatar billede BTEngineer Novice
16. juli 2007 - 20:19 Der er 11 kommentarer og
1 løsning

Fødselsdags dato?

Hej Eksperter.

Kan i fortælle mig hvordan man laver sådan at PHP selv skriver dagene fra 1-31, månederne fra 1-12 og årene således man mindst kan vælge at være 10 år?

Og evt. hvordan man beregner personens fødselsdags dato udfra det man har registeret i databasen?

Tak på forhånd.
Avatar billede arh1 Nybegynder
16. juli 2007 - 20:30 #1
at beregne ud fra databasen? hvad står der i databasen? hvor mange år man er, eller ens fødselsdato?
Avatar billede BTEngineer Novice
16. juli 2007 - 20:31 #2
der står dag, måned og år på en fødseldags dato, men skal først og fremmest bruge det første..
Avatar billede zynzz Praktikant
16. juli 2007 - 21:12 #3
Altså hvis du nu laver en dropdown menu, med henholdsvis de 3 ting kunne se således ud:

// udskriver fra 1957 til 1997 altså 10 år tilbage, uanset hvilket år det er...
<select size="1" name="aar">
<?
for($i = (date('Y')-50); $i <= (date('Y')-10); $i++) {
echo"<option>". $i ."</option>";
}
?>
</select>


Og ved de andre ting laver du også en select til, jeg ved godt man kan snyde med det, men så kan man jo snyde med alt muligt andet også... :)
Avatar billede mstorgaard Praktikant
16. juli 2007 - 22:54 #4
Og når du skal tilføje fødselsdagen til databasen, vil jeg anbefale dig at benytte mktime(), så du får fødselsdagen som et timestamp, hvilket gør det lettere at regne med.

Du kan læse mere om mktime() her:
http://dk.php.net/mktime
Avatar billede zynzz Praktikant
16. juli 2007 - 23:01 #5
Jeg vil give mstorgaard ret, da det kun fylder 1 felt istedet for 3 felter, og er noget nemmere at håndtere... .)
Avatar billede BTEngineer Novice
17. juli 2007 - 15:27 #6
Okay ja.
Nu har jeg gjort følgende:

<select size="1" name="year">
<?
for($i = (date('Y')-50); $i <= (date('Y')-10); $i++) {
echo"<option>". $i ."</option>";
}
?>
</select>

<select size="1" name="day">
<?
for($i=1; $i<32; $i++) {
echo"<option>". $i ."</option>";
}
?>
</select>

<?
$months = array(1 => "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December");
echo $months[];
?>

Mangler kun at få månederne til at virke nu, det skal også stå i en drop down.

Vil i også komme med et eksempel på hvordan jeg skal konvereterer mine dage, måneder samt års inputs til det der mktime ? Og evt. hvordan jeg fremkalder det igen fra databasen således det angiver personens alder.

Tak :-)
Avatar billede mstorgaard Praktikant
17. juli 2007 - 16:18 #7
<select size="1" name="month">
<option value="1">Januar</option>
<option value="2">Februar</option>
<option value="3">Marts</option>
<option value="4">April</option>
<option value="5">Maj</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">December</option>
</select>

####

mktime();
$dato = mktime('', '', '', $_POST['month'], $_POST['day'], $_POST['year']);

$dato vil så give et timestamp, fx "1012302165".

####

Du kan så få fødselsdatoen ud ved at sige:
date("d-m-Y", $dato);
Avatar billede BTEngineer Novice
17. juli 2007 - 16:43 #8
Hvordan regner jeg så ud hvor gamle de er?
f.eks. så den skriver 22.
Avatar billede mstorgaard Praktikant
17. juli 2007 - 17:26 #9
$alder = time()-$dato;

$alder vil så give det antal sekunder en person har levet, så kan du outputte det ligesom man outputter fødselsdatoen.
Avatar billede zynzz Praktikant
17. juli 2007 - 22:08 #10
Ja, nok den nemmeste måde du kan gøre det på... :)

Men jeg har fundet et script der også kan det, kræver dog at formatet ændres lidt..

Men brug mstorgaard`s eksempel...
Avatar billede zynzz Praktikant
17. juli 2007 - 22:09 #11
Og linket til det script: http://www.s2a.dk/articles_read.asp?id=291 :D
Avatar billede BTEngineer Novice
21. september 2007 - 14:00 #12
Jeg får følgende fejlmeddelse:
Warning: mktime() expects parameter 1 to be long, string given in bla bla..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester