Thomas: Date-Problem

Hi Leute,

Ich komme irgendwie nicht weiter. Ich habe ein Problem mit dem Date-Objekt von Javascript. Es spuckt einfach nicht den richtigen Wochentag aus. Zumindest dann wenn ich ein eigenes Datum angebe.
Habe ich irgendeinen Fehler im Code oder ist das ein Bug?
Ich habe 3 Beispiele angegeben das erste setzt das Datum mit den set-Methoden, das zweite mit dem Konstruktor das dritte gar nicht (wodurch ja der aktuelle Zeitpunkt gesetzt wird) - das dritte funktioniert.
Übrigens taucht dieser Fehler auch mit den UTC-Methoden auf.
Könnte mir da einer auf die Sprünge helfen?
Getestet mit Mozilla 1.4, Konqueror 3.1.5 und Opera 7.5 unter SuSE 9.

Hier der Code:

<html><head><title>Test</title>
</head><body>
<script type="text/javascript">
<!--
// bug?:
var jetzt = new Date();
jetzt.setDate(19);
jetzt.setMonth(1);
jetzt.setYear(2004);
var TagInWoche = jetzt.getDay();
var Wochentag = new
Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
document.write('<table border bgcolor="#CCFFFF"><tr><td><b>');
document.write(Wochentag[TagInWoche] + "</b></td></tr></table>");
// Output: Donnerstag = wrong

// bug?:
var jetzt = new Date(2004, 1, 19);
var TagInWoche = jetzt.getDay();
var Wochentag = new
Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
document.write('<table border bgcolor="#CCFFFF"><tr><td><b>');
document.write(Wochentag[TagInWoche] + "</b></td></tr></table>");
// Output: Donnerstag = wrong

// ok:
var jetzt = new Date();
var TagInWoche = jetzt.getDay();
var Wochentag = new
Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
document.write('<table border bgcolor="#CCFFFF"><tr><td><b>');
document.write(Wochentag[TagInWoche] + "</b></td></tr></table>");
// output: Current Day (at 2004-04-11 = Montag) = ok
//-->
</script>
</body></html>

Vielen Dank im Voraus.
MfG
Thomas

  1. Hallo,

    // bug?:
    var jetzt = new Date(2004, 1, 19);

    alert(jetzt); // ergibt den 19. Februar 2004
    var jetzt = new Date(2004, 0, 19);
    alert(jetzt); // ergibt den 19. Januar 2004 (Januar == Monat 0)

    var TagInWoche = jetzt.getDay();
    var Wochentag = new
    Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
    document.write('<table border bgcolor="#CCFFFF"><tr><td><b>');
    document.write(Wochentag[TagInWoche] + "</b></td></tr></table>");

    Kein Bug. Januar ist der Monat 0, nicht der Monat 1. Programmierer halt ;-))

    viele Grüße

    Axel

    1. Vielen Dank.