cookieey: März 2013;

Hallo,

ich habe ein seltsames Problem mit der Funktion Date() festgestellt.
In meinem JavaScript frage ich den letzten Tag des Vorgängermonats ab.
Dazu setzte ich das Datum auf den 1ten des Monats und ziehe einen Tag ab. Das klappt soweit wunderbar.
Probleme habe ich mit dem März 2013.
var d3 = new Date (2013, 3, 1); /* 1. April 2013
var diff = new Date (d3-1000*60*60*24); /* 1 Tag abziehen */

Das Ergebnis ist jedoch der 30.03.2013, obwohl der März doch 31 Tage hat.
alert ("letzter Tag des Vorgängermonats: " + diff.getDate() + "." + diff.getMonth());

Hat jemand eine Idee woran das liegen kann?

Vielen Dank im Voraus,
cookieey

  1. Hat jemand eine Idee woran das liegen kann?

    Die einzige spantane Idee, die mir einfällt:

    Eventuell ist in der Nacht vom 31.3. auf den 1.4. eine Zeitumstellung und der Tag hat nur 23 Stunden. Dann würde es den 31. komplett überspringen. Wobei ich mir nicht sicher bin, ob beim Wechsel zur Sommerzeit 23 oder 25 Stunden aus den normalen 24 werden :)

    Grüsse,
    Stefan

  2. hi,

    var d3 = new Date (2013, 3, 1); /* 1. April 2013

    Wenn du danach mal alert(d3.toUTCString()) machst, erhältst du "Sun, 31 Mar 2013 22:00:00 UTC" (zumindest, wenn die Zeitzoneneinstellung deines Rechners die gleiche ist wie die von meinem). Huch, das ist ja schon gar kein erster April ...?

    Tja, wir sind GMT/UTC leider ein bis zwei Stunden voraus (je nachdem, ob wir gerade Sommer-/Winterzeit haben).

    Wenn bei uns "Sun, 31 Mar 2013 22:00:00 UTC", ist "bei denen" schon Montag, 1 Apr.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hallo cookieey,

    In meinem JavaScript frage ich den letzten Tag des Vorgängermonats ab.

    Die Abfrage des "Tages 0" liefert einfacher den letzten Tag des Vormonats:

    var t=new Date(2013,3,0).getDate();  
    alert(t); // 31
    

    Grüße,
    Thomas

    1. Hallo Thomas,

      vielen Dank für den Hinweis. Mit Tag 0 ist das natürlich noch 'ne Ecke eleganter!

      Gruß,
      Rene

      ---

      Hallo cookieey,

      In meinem JavaScript frage ich den letzten Tag des Vorgängermonats ab.

      Die Abfrage des "Tages 0" liefert einfacher den letzten Tag des Vormonats:

      var t=new Date(2013,3,0).getDate();

      alert(t); // 31

      
      >   
      > Grüße,  
      > Thomas