Avatar billede bgo Nybegynder
30. september 2009 - 12:31 Der er 5 kommentarer og
1 løsning

Mystisk dato-problem med d. 31. i måneden

Jeg har følgende:

var getdato="31-1-2009";

var datosplit=getdato.split("-");
var ddag=datosplit[0];
var dmnd=datosplit[1];
var daar=datosplit[2];
document.write(ddag+" "+dmnd+" "+daar);

var ddato=new Date();
ddato.setDate(ddag);
ddato.setMonth(dmnd-1);
ddato.setFullYear(daar);

Det ser jo tilforladeligt ud, men ddato bliver 1-1-2009. Ændrer jeg getdato til 30-1-2009 bliver ddato 30-1-2009. Er getdato 31-8-2009 bliver ddato 1-8-2009. Af én eller anden mystisk årsag sker der noget når datoen er den 31. Dét er noget rigtig skidt noget. Er der nogen der kan hjælpe?
Avatar billede bgo Nybegynder
30. september 2009 - 12:33 #1
Åh ja, ser ikke ud til at være browser-specifit, det er det samme i IE7 og FF3.5
Avatar billede di8leva Nybegynder
30. september 2009 - 13:24 #2
Jeg tror det er fordi du starter med setDate, som så sätter dato til den 31/9 (fordi nu er det september)

31/9 findes ikke = 1/10. Så sätter du måned til 1 = 1/1.

Brug dette i stedet:

var ddato=new Date();
ddato.setMonth(0);
ddato.setDate(ddag);
ddato.setMonth(dmnd-1);
ddato.setFullYear(daar);

så skal det nok virke... måske findes der en bädre måde, men den kender ikke jeg :)
Avatar billede erikjacobsen Ekspert
30. september 2009 - 13:32 #3
Ellers:

var myDate=new Date();
myDate.setFullYear(2010,0,14);  // 14. jan. 2010
Avatar billede bgo Nybegynder
30. september 2009 - 13:33 #4
Arh ja, selvfølgelig :) Dét havde jeg ikke lige tænkt på :)

Lægger du lige et svar, så er der point :)
Avatar billede erikjacobsen Ekspert
30. september 2009 - 13:34 #5
Eller bedre

var myDate=new Date(2010, 0, 14, 0, 0, 0,0);

Brug:
new Date(year, month, day, hours, minutes, seconds, milliseconds)
Avatar billede bgo Nybegynder
25. marts 2010 - 01:35 #6
lukker
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