susi1982: Getmonth() liefert falsche Monate

Hallo zusammen,

ich habe ein JavaScript aber ein Problem damit.
Dort ist eine Passage wo ich den aktuellen Monat auslesen muss.
Das klappt auch alles:

var d=new Date();
var day=d.getDate();
var month=d.getMonth() + 1;
var year=d.getFullYear();
var dateto = year + "" + month;
var datefrom = year + "01";
var wert = "01." + year + " - " + month + "." + year;

Allerdings wird mir immer nur der Monat einstellig geliefert.
Ich habe überall gesucht aber nichts gefunden was mir helfen kann.
Was ich brauche ist, dass anstatt "2" im Grunde "02" geliefert wird.
Habt ihr vielleicht eine Idee.

Liebe Grüsse,

Susi1982

  1. Hallo Susi,

    Die zweite zusätzliche Spalte fügt dir eine 0 hinzu falls der Monat 1-stellg ist.

      
    var month = d.getMonth() + 1;  
    month = (month.length == 1) ? "0"+month : month;  
    
    

    Gruß Matthias

    1. Hallo Matthias,

      vielen Dank. Ich probiere es gleich einmal aus.
      An ".length" habe ich nicht gedacht. Das ist ja dann wirklich elegant gelöst.

      Viele Grüsse,

      Susi

      1. Hallo Matthias,

        vielen Dank. Ich probiere es gleich einmal aus.
        An ".length" habe ich nicht gedacht. Das ist ja dann wirklich elegant gelöst.

        Viele Grüsse,

        Susi

        Bitte Bitte.
        Die andere Alternative ist die Methode von Gunnar Bittersmann, anstatt die Länge zu prüfen einfach zu prüfen ob month < 10. Sind beides adäquate Lösungen!

        1. @@raw-venture-ad:

          »» An ".length" habe ich nicht gedacht.

          Das ist auch gut so.

          »» Das ist ja dann wirklich elegant gelöst.

          Nicht wirklich. Wirklich nicht.

          Sind beides adäquate Lösungen!

          Nicht wirklich. Wirklich nicht.

          Live long and prosper,
          Gunnar

          --
          Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
          1. Hallo Gunnar,

            ich habs noch einmal nach deiner Methode probiert.
            Auch die Varianten der anderen Teilnehmer.
            Bis auf die .length Variante läuft alles.
            Vielen Dank an alle.

            Grüsse aus Hamburg,

            Susi

    2. @@raw-venture-ad:

      month = (month.length == 1) ? "0"+month : month;

      Aber so doch nicht!

      Die Bedingung month.length == 1 ist nie erfüllt, da month.length undefiniert ist; schließlich ist month vom Typ number.

      Live long and prosper,
      Gunnar

      --
      Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
    3. Hallo raw!

      var month = d.getMonth() + 1;
      month = (month.length == 1) ? "0"+month : month;

        
        
      Für deine Adresszeile zum Testen:  
      javascript:var month = 1;alert(month.length);  
        
      Eine Zahl ist kein String.  
        
        
      Viele Grüße aus Frankfurt/Main,  
      Patrick
      
      -- 
      \_ - jenseits vom delirium - \_  
      ![](http://www.atomic-eggs.com/fuernA.jpg)  
         [Diblom](http://www.atomic-eggs.com/pics/diblom.png)   [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
      [J'ai 10 ans!](http://www.atomic-eggs.com/wae/wae_10.shtml#a5) | Achtung [Agentur](http://www.atomic-eggs.com/cwi/cwi_5.shtml#a5)! | Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml) | Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
      
  2. @@susi1982:

    Was ich brauche ist, dass anstatt "2" im Grunde "02" geliefert wird.
    Habt ihr vielleicht eine Idee.

    Wenn month < 10 erzeuge einen String mit führender Null: statt 'month' also '(month < 10 [ref:self812;javascript/sprache/bedingt.htm#entweder_oder@title=?] "0" + month [ref:self812;javascript/sprache/bedingt.htm#entweder_oder@title=:] month)'.

    Dass '"0" + month' und 'month' von unterschiedlichem Typ sind, interessiert hier nicht weiter, da 'month' sowieso in einen String konvertiert wird.

    Live long and prosper,
    Gunnar

    --
    Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
    1. Hallo Gunnar,

      das probiere ich am besten auch gleich aus.
      Vielen Dank für den Tipp.

      Ich habe echt was neues gelernt heute :-)

      Grüsse,

      Susi

  3. Hi,

    ich habe ein JavaScript aber ein Problem damit.
    Dort ist eine Passage wo ich den aktuellen Monat auslesen muss.
    Das klappt auch alles:

    var d=new Date();
    var day=d.getDate();
    var month=d.getMonth() + 1;
    var year=d.getFullYear();
    var dateto = year + "" + month;
    var datefrom = year + "01";
    var wert = "01." + year + " - " + month + "." + year;

    Allerdings wird mir immer nur der Monat einstellig geliefert.
    Ich habe überall gesucht aber nichts gefunden was mir helfen kann.
    Was ich brauche ist, dass anstatt "2" im Grunde "02" geliefert wird.
    Habt ihr vielleicht eine Idee.

    <http://de.selfhtml.org/javascript/sprache/objekte.htm#verwenden@title=Hier tritt genau das gleiche Problem auf> (Siehe Variable NachVoll). Hier wurde es mit einer <http://de.selfhtml.org/javascript/sprache/bedingt.htm#entweder_oder@title=einfachen Entweder-Oder-Abfrage> gelöst: ((Minuten < 10) ? ":0" : ":") . So ähnlich könnte man es auch hier lösen. Nur eben statt 'Minuten < 10' 'month < 10' und natürlich den Doppelpunkt weg.

    lg the stell

    1. Hi stell,
      Dankeschön. Das ist nun schon der Tipp Nummer 3.
      Wow ihr seid echt Schnell.
      Das probiere ich auch aus.
      Viele Grüsse,
      Susi

      1. Hi,

        Dankeschön. Das ist nun schon der Tipp Nummer 3.
        Wow ihr seid echt Schnell.

        Wenn du bzgl. Date ein wenig in SELFHTML nachgelesen haettest, dann haettest du direkt ueber der Beschreibung von getMonth bei den Minutes ein Beispiel gefunden, wie man aus einen einstelligen Wert fuer die Anzeige einen zweistelligen mit ggf. fuehrender Null macht.

        Und wieso hast du deinen Thread eigentlich mit "Getmonth() liefert falsche Monate" betitelt, wo diese Methode doch selbst im von dir gezeigten Beispiel absolut nichts falsch macht?

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
  4. moinmoin

    raw-venture-ad war schneller, aber wo ich das Fenster schon mal offen hab, schreib ich jetzt auch...

    var Heute = new Date();
    var Tag = Heute.getDate();
    var Tag2 = ((Tag < 10) ? "0" : "") + Tag;
    var Monat = Heute.getMonth() +1;
    var Monat2 = ((Monat < 10) ? "0" : "") + Monat;
    var Jahr = Heute.getFullYear();

    ...liefert sowohl bei Tagen als auch den Monaten die führende Null..

    Gruß Krischi

    1. Hi Krischi,

      trotzdem vielen lieben Dank :-))

      Ihr seid echt TOP.

      Dankeschön,

      Viele Grüsse,

      Susi