Date.prototype.setYear()
Deprecated
Avoid using this feature in new projects.
The getYear() and setYear() methods use a truncated number instead of the actual year number, known as a year 2000 problem.
This feature may be a candidate for removal from web standards or browsers.>
Die Methode setYear() von Date-Instanzen setzt das Jahr eines angegebenen Datums gemäß der lokalen Zeit.
Die veraltete Methode setYear() verarbeitet Jahreswerte jedoch anders als die bevorzugte Methode setFullYear() – und in einigen Fällen auch anders als new Date() und Date.parse(). Insbesondere bei zweistelligen Zahlen wie 22 und 61 gilt:
-
setYear()interpretiert jede zweistellige Zahl als Versatz zu1900:date.setYear(22)setzt das Jahr auf1922, unddate.setYear(61)setzt es auf1961. (Im Gegensatz dazu setztnew Date(61, 1)das Jahr zwar ebenfalls auf1961,new Date("2/1/22")setzt es aber auf2022; Entsprechendes gilt fürDate.parse().) -
setFullYear()nimmt keine solche Sonderbehandlung vor, sondern verwendet den zweistelligen Wert unverändert als Jahr:date.setFullYear(61)setzt das Jahr auf0061, unddate.setFullYear(22)setzt es auf0022.
Aufgrund dieser Unterschiede sollten Sie die veraltete Methode setYear() nicht mehr verwenden, sondern stattdessen die bevorzugte Methode setFullYear().
Syntax
setYear(yearValue)
Parameter
yearValue-
Eine Ganzzahl.
Rückgabewert
Ändert das Date-Objekt direkt und gibt seinen neuen Zeitstempel zurück. Wenn yearValue den Wert NaN hat (oder ein anderer Wert ist, der in NaN umgewandelt wird, etwa undefined), wird das Datum auf Invalid Date gesetzt und NaN zurückgegeben.
Beschreibung
Wenn yearValue eine Zahl zwischen 0 und 99 (einschließlich) ist, wird das Jahr von dateObj auf 1900 + yearValue gesetzt. Andernfalls wird das Jahr von dateObj auf yearValue gesetzt.
Beispiele
>setYear() verwenden
Die ersten beiden Zeilen setzen das Jahr auf 1996. Die dritte setzt das Jahr auf 2000.
const theBigDay = new Date();
theBigDay.setYear(96);
theBigDay.setYear(1996);
theBigDay.setYear(2000);
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-date.prototype.setyear> |