JavaScript2000年問題


  • <例題>来年までの日数計算


  • 2000年問題


  • 2000年対応


なぜこんな計算結果になるのか?
これまで西暦下2桁で年の認識をする様になっていました。
70年は西暦1970年、99年は西暦1999年と処理されてきました。
ところが99年+1年は西暦100年と認識されてしまった(本当はこれが正しいのですが) この為100年−1999年という計算されたためです。
テスト的にあなたのパソコンの時計をクリックして年号を2000年にして 下の表示がどう変わるか見てください。
JavaScriptの
today.getYear()は
1999年までは下2桁、2000年からは4桁を出力しまします。
97、98、99、2000、2001ということになっています。 today.getTime(y,m,d)は
1970年1月1日0時00分00秒からの経過時間を出力しますが
y=99を代入してもまたy=1999を代入しても同じ答えが得られますが
y=99+1とy=1999+1では2000年と100年の処理となります。

戻る