Sven Rautenberg: js gibt mir n falschen wochentag?

Beitrag lesen

Aloha!

am besten wärs jetz natürlich wenn ich noch verstehen würde warum meins nich geklappt hat und warum das nu gerade klappt ......... aber naja, ich denke nich, dass ich da noch was ändern muss ;)

Das Problem bei dir ist, daß du falsche Variablentypen übergeben hast:

tag=suchtext.slice(0,2);  // tag ist String
mon=suchtext.slice(2,4);  // mon ist String
jahr=suchtext.slice(4,8); // jahr ist String
[...]
zdatum=new Date(jahr, mon, tag); //Hier werden Integer verlangt!
ztag=zdatum.getDay();

Du mußt also vor der Anwendung dir Variablen mit parseInt() in Zahlen verwandeln. Javascript wandelt die Typen nämlich nicht so passend, wie z.B. PHP oder Perl.

Gut wäre also:
tag=parseInt(suchtext.slice(0,2));  // tag ist Integer
mon=parseInt(suchtext.slice(2,4));  // mon ist Integer
jahr=parseInt(suchtext.slice(4,8)); // jahr ist Integer

Und alles andere kann so bleiben.

Merke: Wenn in Javascript falsche Werte rauskommen, liegt es meistens daran, daß die Variablen Strings sind, obwohl Integer (oder Float) erwartet werden. "1" + "1" ergibt "11" - logisch. 1 + 1 ergibt 2 - auch logisch. Aber a + a ergibt eben je nach Variablentyp entweder "11" oder 2, je nachdem, ob vorher a="1" oder a=1 definiert wurde.

- Sven Rautenberg