このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

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.

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

しかし、古い setYear() メソッドが年を設定する方法は、好ましい setFullYear() メソッドが年を設定する方法と異なり、いくつかのケースでは new Date() や Date.parse() が年の値を設定する方法とも異なっています。詳細度は、22 や 61 のような 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 オブジェクトを変更し、新しいタイムスタンプを返します。 yearValue が NaN (または 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);

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-date.prototype.setyear

ブラウザーの互換性

関連情報