ARCHIVESDRIVE HB

オイラはホームベーカリー!

(誰かによってカスタマイズされてた) datepicker こわれた

壊したのは人間。

結論から言うと getYear() とかいう治安の悪いものを使っていたので getFullYear() に修正しました、これが 2000 年問題か……。

専任メンテナ不在のプロジェクトで、年月日の入力に datepicker を利用している箇所があり、これが 2020 年を迎えた瞬間セレクトボックスの中身が空になって障害になっているとの事。

誰もいねえのかーしたら確認すっか、と見たところ以下のような記述でした。 現在年月日から判断して 20 歳〜 65 歳の人の生まれ年のみ、セレクトボックスから選択出来るようになっています。

  setDatepicker = () ->
    currentTime = new Date()
    minDate = new Date()
    maxDate = new Date()
    minDate.setYear(minDate.getYear() - 65)
    maxDate.setYear(maxDate.getYear() - 20)

ははぁん? 皆様ならおわかりだと思うのですが、さすがに半信半疑だった僕は console.log で minDate maxDate を、一応表示する作業をしました。

console.log(minDate);
-> 1955
console.log(maxDate);
-> 0100

ハイ、いやハイじゃないが。

どういうことだってばよ!

こういう事です。 遅れてきた 2000 年問題というか 2020 年問題というか、なんというか……なぜいまさら getYear() をご利用に? という感じですね。

2000 年以降の年について、getYear() が返す値は 100 以上です。例えば、2026 年の場合、getYear() は 126 を返します。 1900 年から 1999 年について、getYear() が返す値は 0 から 99 の間です。例えば、1976 年の場合、getYear() は 76 を返します。

developer.mozilla.org