Avatar billede fatass Nybegynder
29. november 2001 - 17:53 Der er 9 kommentarer og
1 løsning

Visning af alder på en person ud fra fødselsdagen

På min hjemmeside er der en liste over en masse mennesker. Blandt de data jeg har på dem er deres alder. Jeg er ved at være træt af at ændre disse manuelt hver gang de har fødselsdag.
Nogen der kan hjælpe med et script der selv klarer det?
Avatar billede jakoba Nybegynder
29. november 2001 - 18:05 #1
du skal ALDRIG ALDRIG ALDRIG gemme en alder i en database. gem fødselsdatoen eller en anden uforanderlig værdi.

hvor du så skal have udskrevet alderen siger du

var nu = new Date();    // denne dato
var alder = Math.round( ( nu.valueOf() -fødselsdato.valueOf() ) / 365/24*60*60*1000 );
          // eller noget lignende.
alert( alder );

så skal der aldrig rettes mere.
Avatar billede fatass Nybegynder
29. november 2001 - 18:56 #2
takker.
hvilket format skal fødselsdatoen være i? (ddmmåå)?

Skal der ikke være en var fødselsdato = ******??
Avatar billede jakoba Nybegynder
29. november 2001 - 19:15 #3
Ovenfor har jeg gået ud fra det var et Date objekt. lavet udfra hvadfor et format du vælger st skrive fødselsdagen i.
Nok smartest med et 4-cifret år, nogen mennesker bliver meget gamle :)
så lad os sige ddmmåååå:

var lagretfdag = \"03091896\";  // den værdi du gemmer
var fodselsdag = new Date(    // gøres til et Date objekt
            parseInt( lagretfdag.substr(4,4), 10 ),  // år
            parseInt( lagretfdag.substr(2,2), 10 ),  // måned
            parseInt( lagretfdag.substr(0,2), 10 )  // dag
                              );

mvh JakobA
Avatar billede fatass Nybegynder
29. november 2001 - 20:39 #4
Ved ikke hvad jeg gør galt, men viser ikke noget. Der kommer bare en dialogboks med et ca. 15 cifret tal i.
Kunne du evt. skrive koden sådan at jeg bare kan cut/paste den?
Avatar billede jakoba Nybegynder
29. november 2001 - 21:11 #5
Det var mid der havde gjort galt der skal stå * istedet for / efter 365 i linien med alder.

<script type=\'text/javascript\'>

function findAlder( fdato ) { // fdato har format \'ddmmåååå\'
    var fodselsdag = new Date(    // gøres til et Date objekt
                parseInt( fdato.substr(4,4), 10 ),  // år
                parseInt( fdato.substr(2,2), 10 ),  // måned
                parseInt( fdato.substr(0,2), 10 )  // dag
                                  );
    var nu = new Date();
    return  Math.round( ( nu.valueOf() -fødselsdato.valueOf() ) / (365*24*60*60*1000) );
}; //end findAlder( string ) -> number

// linierne nedenfor er til test:
var fdag = prompt( \"skriv fødselsdato: \'ddmmåååå\'.\", \"\" );
while ( fdag.length == 8 ) {
    alert( findAlder( fdag ) );
    fdag = prompt( \"skriv fødselsdato: \'ddmmåååå\'.\", \"\" );
};

</script>

mvh www.fotx.net/jakoba
Avatar billede fatass Nybegynder
29. november 2001 - 22:47 #6
Ok tak for hjælpen. For god ordens skyld skal det lige siges, at der har sneget sig en lille fejl ind i denne linie:
return  Math.round( ( nu.valueOf() -fødselsdato.valueOf() ) / (365*24*60*60*1000) );

I stedet for fødselsdato skal der vel stå fodselsdag - right?
Så virker det i hvert fald.

næste problem er så bare hvordan jeg får det arbejdet ind i min hjemmeside...

her skal det endelige resultat være noget lignende dette:

Navn:
Thomas

Alder:
21 (her er det så meningen den selv skriver den aktuelle alder beregnet ud fra fødselsdatoen indtastet i scriptet)

Dette skulle jeg nok have skrevet fra starten. Jeg undskylder mit spørgsmåls manglende præcision.
Skal jeg oprette dette som et nyt spørsmål eller er det ok at fortsætte her? Hvis det er muligt at sætte pointsne op gør jeg det gerne.
Avatar billede jakoba Nybegynder
29. november 2001 - 22:55 #7
Nej, vi kan bare fortsætte her.

læg sctiptet ovenfor imellem <head> og </head> (pil testen ud og smid væk).

så kan du indskrive aldre i domumentet med:

<p>Min baby er <script>document.write( \"12042000\" );</script> år gammel.

mvh JakobA
Avatar billede jakoba Nybegynder
29. november 2001 - 22:57 #8
Jeps.  fødselsdato skal være fodselsdag (for meget cut&paste. sorry).
Avatar billede fatass Nybegynder
29. november 2001 - 23:01 #9
Mange tak for hjælpen!
Avatar billede jakoba Nybegynder
29. november 2001 - 23:09 #10
Hej, det var jo pladder, det skal være:

<p>Min baby er <script>document.write( findAlder( \"12042000\" ) );</script> år gammel.

men det havde du vel hittet ud af :-))

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