JavaScript/Objekte/Date/setMonth

Aus SELFHTML-Wiki
< JavaScript‎ | Objekte‎ | Date
Wechseln zu: Navigation, Suche

Die Methode setMonth() ändert den Monat, der in einem Datumsobjekt gespeichert ist. Der gewünschte Wert ist als Parameter zu übergeben.

  • JavaScript 1.1
  • Chrome
  • IE
  • Firefox
  • Opera
  • Safari

Syntax

dateObj.setMonth(monat[, tag])

  • monat: ganze Zahl zwischen 0 und 11
  • tag: optional, ganze Zahl zwischen 1 und 31

Rückgabewert ist die Anzahl der Millisekunden zwischen dem 1. Januar 1970 00:00:00 UTC und dem geänderten Date-Objekt.

Beachten Sie: Wenn Sie eine zu hohe Zahl übergeben, rollt die Zeit einfach in das nächste Jahr!

Anwendungsbeispiel[Bearbeiten]

Beispiel ansehen …
  function init () {
    document.getElementById('button').addEventListener('click',andererMonat);
    andererMonat();
  }

  function andererMonat () {
    var Zeit = new Date(),
        aktuell = Zeit.getMonth(),
	zufall = rand(0,11),
        gesetzt = Zeit.setMonth(zufall);
    gesetzt = Zeit.getMonth(),

    document.getElementById('aktuell').innerHTML = aktuell;
    document.getElementById('gesetzt').innerHTML = gesetzt;
  } 
 
  function rand (min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
Das Beispiel enthält einen Button. Beim Anklicken wird die Funktion andererMonat() aufgerufen.

Dort wird ein neues Datumobjekt Zeit mit dem aktuellen Zeitpunkt erzeugt. Mit der Methode setMonth() wird ein neuer Monat gesetzt - und zwar per Zufall.
rand(min, max) ruft eine Helferfunktion zur Berechnung ganzzahliger, gleichverteilter Zufallszahlen auf, die als Rückgabewert diesen Zufallswert zurückgibt.

Diese Zahl wird der setMonth()-Methode als Parameter übergeben. Der neue Monatszahl wird noch mal mit getMonth() ermittelt und anschließend angezeigt.
Beachten Sie: Mit dieser Zufallsfunktion können auch mehrfach hintereinander die gleichen Zahlen gezogen werden. Um dies zu verhindern, müssten Sie eine Wechsellogik zum „Ziehen ohne Zurücklegen“ verwenden.


Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]