Date.prototype.setYear()

非推奨;: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

setSeconds()Date インスタンスのメソッドで、地方時に基づき、指定された日時の「年」を変更します。

しかし、古い setYear() メソッドが年を設定する方法は、好ましい setFullYear() メソッドが年を設定する方法と異なり、いくつかのケースでは new Date()Date.parse() が年の値を設定する方法とも異なっています。詳細度は、2261 のような 2 桁の数字が指定された場合、以下のようになります。

  • setYear() は任意の 2 桁の数字を 1900 へのオフセットとして解釈します。したがって、 date.setYear(22) は年の値を 1922 に、 date.setYear(61) は年の値を 1961 に設定することになります(一方、 new Date(61, 1) は年の値を 1961 に設定しますが、 new Date("2/1/22") は年の値を 2022 に設定し、同様に Date.parse() も同じになります)。

  • setFullYear() は特別な解釈をせず、 2 桁のリテラル値をそのまま使用して年を設定します。したがって、 date.setFullYear(61) は年の値を 0061 に、 date.setFullYear(22) は年の値を 0022 に設定する結果となります。

これらの動作の違いから、古いメソッドである setYear() はもう使用せず、代わりに推奨の setFullYear() メソッドを使用してください。

構文

js
setYear(yearValue)

引数

yearValue

整数値。

返値

その場で Date オブジェクトを変更し、新しいタイムスタンプを返します。 yearValueNaN (または undefined など、 NaN変換されるその他の値)の場合、日付は無効な日時に設定され、 NaN が返されます。

解説

yearValue が 0 から 99 までの値の場合、 dateObj の「年」には 1900 + yearValue が設定されます。そうでない場合、dateObj の「年」には yearValue が設定されます。

setYear() の使用

最初の 2 行は「年」を 1996 に設定します。3 行目は、「年」を 2000 に設定します。

js
const theBigDay = new Date();

theBigDay.setYear(96);
theBigDay.setYear(1996);
theBigDay.setYear(2000);

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-date.prototype.setyear

ブラウザーの互換性

関連情報