1. ホーム
  2. javascript

[解決済み] JavascriptのgetYear()はなぜ108を返すのですか?

2023-01-24 10:48:01

質問

なぜこのjavascriptは2008ではなく108を返すのでしょうか? 日と月は正しく表示されますが、年は表示されません。

myDate = new Date();
year = myDate.getYear();

年=108?

どのように解決するのですか?

これは Y2K のもので、1900年以降の年数のみがカウントされます。

現在、潜在的な互換性の問題があります。 getYear() が非推奨となり、代わりに getFullYear() - から quirksmode :

さらに複雑なことに、date.getYear()は今日では非推奨となっており、date.getFullYear()を使う必要がありますが、これは逆に古いブラウザではサポートされていません。しかし、それが機能するならば、それは常に完全な年、すなわち100の代わりに2000を与えるはずです。

ブラウザはこれらの2つのメソッドで次の年を表示します。

* The year according to getYear(): 108
* The year according to getFullYear(): 2008

また、Internet Explorer と Firefox の間には実装の違いがあり、IEの実装では getYear() のような挙動に変更されました。 getFullYear() - から IBM :

ECMAScript の仕様では、getYear は 1900 を引いた年を返します。元々は 1998 を表す "98" を返すという意味でした。

Internet Explorer は getFullYear() のように動作するように getYear() を変更し、Y2K に準拠するようにしましたが、Mozilla は標準の動作を維持しました。