12. juni 2014 - 19:03 Der er 4 kommentarer og
1 løsning

Javascript date.setdate (min dato) opfører jeg meget mærkeligt....

HEJ;

Fra en date-picker henter jeg en UGE-start dato i formatet dd-mm-yyyy. Dette virker perfekt, og denne dato er ALTID en "mandags-dato" . (Scriptet returners dato som STRING).

Det jeg ønsker med denne MANDAGS-dato er at indføre denne dato (mandag) og de 6 (7) efterfølgende (man- til søn-dag) i en tabel sammen med datoerne for dagen efter.

Jeg gør det med et javascript som følger:


function bygdage(startw)  // startw = dato i format dd-mm-yyyy
{
var dd ; 
var mm ;
var yy ;
var pos;           
    yy = Number(startw.substr(6,4));
    mm = Number(startw.substr(3,2));
    dd = Number(startw.substr(0,2));  udtræk dato, måned og år som nummer

    pos = Number(0);
    for (n = 0; n < 6 ; n++ )
    {
        pos = Number(n) +1;    // hjælpevariabel
        var mydate = new Date();
        mydate.setFullYear(yy);
        mydate.setMonth(mm);
        mydate.setDate(dd + n);

        var    v1 = document.getElementById('dag'+ pos);
            v1.innerHTML = DageNavne[pos] + 'dag';
        var    v1 = document.getElementById('dato'+ pos);
            v1.innerHTML = mydate.getDate() +'-'+ mydate.getMonth() + '-' + mydate.getFullYear();
    }

    var mydate = new Date();
    mydate.setDate(Number(dd) + 6);
    mydate.setMonth(Number(mm));
    mydate.setFullYear(Number(yy));
    var    v1 = document.getElementById('dag7');
        v1.innerHTML = 'Søndag';
    var    v1 = document.getElementById('dato7');
        v1.innerHTML = mydate.getDate() +'-'+ mydate.getMonth() + '-' + mydate.getFullYear();
}

Denne rutine virker og virker ikke...  Jeg får "sjove datoer" eksempelvis  31-06-2014  og 30-02-2014 , men jeg kan ikke se hvor jeg laver fejl .

INPUT Data fra Datapicker er testet og Der er IKKE FEJL derfra. Fejlen opstår i mit script.

Kan nogen hjælpe mig videre ..

(Dag1-7 og Dato1-7 er TABEL-celle(r).)

Kristian
12. juni 2014 - 19:04 #1
OH DAMN,

"Jeg"  i overskriften burde være SIG ...

KR
Avatar billede erikjacobsen Ekspert
13. juni 2014 - 06:54 #2
Ja, det er en af de sjove klassikere.

I Javascript regnes måneder fra 0 til 11, 0=januar, osv.

Du skal derfor lige huske at trække fra og lægge til. Ret
    mydate.setMonth(mm);
til
    mydate.setMonth(mm-1);

og ret
  v1.innerHTML = mydate.getDate() +'-'+ mydate.getMonth() + '-' + mydate.getFullYear();
til
  v1.innerHTML = mydate.getDate() +'-'+ (mydate.getMonth()+1) + '-' + mydate.getFullYear();
13. juni 2014 - 10:09 #3
HEJ,

Tak for responsen.

Det sjove er, at jeg har nu siddet i ca. 1 time og arbejdet med datoer (date.objectet). Noget af det første jeg opdagede, var lige netop det med MONTH.. skal være en (1) større ... 

Og det endnu mere paradoksale er, at jeg faktisk godt vidste at måneder skal være denne ene større....  Men komme i tanker om det, når jeg har problenmet lige foran næsen ... Åbenbart ikke (suk!) (LOL = hulk!)

JA, ja - jeg lærer det vel - efterhånden... !

Men TAK skal du have og hvis du dropper et svar er du 30 point rigere.... (og jeg en erfaring rigere (hehe))....

KR
Avatar billede erikjacobsen Ekspert
13. juni 2014 - 10:43 #4
Tak, men ingen point til mig. Svar selv, accepter dit eget svar.
13. juni 2014 - 11:45 #5
OK og tak nok en gang

KR
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