Avatar billede sanne Nybegynder
04. januar 2002 - 14:57 Der er 4 kommentarer og
1 løsning

Datoberegning

Jeg har to tekstfelter hvor brugeren kan indtaste en måned og et år, alt efter et tidligere foretaget valg skla der ligges henholdsvis 21 eller 27 måneder til den indtastede dato og to andre tekstfelter skal vise henholdsvis måned og år for den nye dato.

Men det går galt hvis den nye dato bliver december - altså 12 - så skriver den 0 og rykker året en op. Dvs. hvis der indtastes 09-2001 og der skal lægges 27 måneder til, så skulle den skrive 12-2003 - men det gør den ikke, den skriver 0-2004
Er der en der kan se hvorfor det går galt i nedenstående script?


function checkDate() {

    var uddannelse = new Number((document.sfrm.udd[0].checked) ? 27 : 21);

    var d = new Date(document.sfrm.beg_aar.value,document.sfrm.beg_mdr.value,1);
   
    d.setMonth (d.getMonth() + uddannelse);
    document.sfrm.afs_mdr.value = d.getMounth();
    document.sfrm.afs_aar.value = d.getFullYear();
};

Avatar billede jespernaur Nybegynder
04. januar 2002 - 15:07 #1
Har du ikke overset, at Month i et date-objekt er 0-relativt, altså januar=0, december=11?

Mvh
Jesper Naur
Avatar billede erikjacobsen Ekspert
04. januar 2002 - 15:10 #2
Der er nok en stavefejl i d.getMounth();
Avatar billede sanne Nybegynder
04. januar 2002 - 15:18 #3
jespernaur - Det har du da vist fuldstændig ret i, men hvordan får jeg den så til at regne det rigtigt ud, både så man kan skrive f.eks. 4 for april og få et 4-tal ud for april??
Avatar billede erikjacobsen Ekspert
04. januar 2002 - 15:19 #4
Du trækker en fra og lægger en til - på passende steder :)
Avatar billede sanne Nybegynder
04. januar 2002 - 15:28 #5
I er bare nogle engle :-)
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