Avatar billede KlausEC Nybegynder
08. januar 2010 - 09:53 Der er 5 kommentarer og
1 løsning

fra en streng til en date - parseInt fejl?

jeg har en streng med en dato i, i formatet yyyy-mm-dd

jeg gør følgende:

var year = parseInt(refDateVal.substring(0, 4));
var month = parseInt(refDateVal.substring(5, 7)) - 1;
var day = parseInt(refDateVal.substring(8, 10));
date.setFullYear(year, month, day);

ved datoen 2010-01-07 virker alt fint.
ved datoen 2010-01-08 bliver day 0 fremfor 8.

Jeg har sikret mig, at refDateVal indeholder den korrekte dato.
Hvis jeg laver en
alert(refDateVal.substring(8,10));
så bliver svaret 08
hvis jeg så parser værdien til en int, således:
alert(parseInt(refDateVal.substring(8,10)));
så bliver svaret 0

jeg er blank... nogle idéer?
Avatar billede KlausEC Nybegynder
08. januar 2010 - 10:05 #1
en anden (og mere simpel) måde at beskrive problemet på:

var tmpday = refDateVal.substring(8, 10);
var day = parseInt(tmpday);
alert("tmpday: " + tmpday + ", day: " + day);
alerten giver svaret:
tmpday: 08, day: 0
Avatar billede KlausEC Nybegynder
08. januar 2010 - 10:09 #2
Fandt sørme selv svaret.

talene blev fortolket som oktale (god knows why...)
Derfor skal jeg tvinge parseInt til at fortolke som decimal, således:

var day = parseInt(tmpday,10);

så virker det!
Avatar billede erikjacobsen Ekspert
08. januar 2010 - 10:54 #3
Strenge, der representerer tal, og som starter med "0" vil default blive opfattet som oktale.
Avatar billede KlausEC Nybegynder
08. januar 2010 - 10:55 #4
Det ville give mening, ja! ;)
Avatar billede Slettet bruger
08. januar 2010 - 11:34 #5
Ja, i en verden hvor det mest almindelige var base8.
- her på jorden er det en absurd default - og sikkert skyld i både flystyrt, skilsmisser og jordskælv ... ok, måske ikke jordskælv, men alligevel...
Avatar billede erikjacobsen Ekspert
08. januar 2010 - 11:50 #6
Det er almindelig kendt, at hvis man ikke ved hvad man beskæftiger sig med, så kan det gå galt.
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