二〇〇七年 睦月 十五日 月曜日 ■ JavaScript の 2000 年問題 [/links] この記事は書かれてから1年以上経過しています。内容が古くなっている可能性があります。コメントの受付は終了しました。 今日、とあるウェブサイトを見ていたら、今月は「107年1月」と表示されていて、びっくりした。何がびっくりと言って、21 世紀が始まってもう６年も経つというのに、いまだに 2000 年問題に対応していないサイトがあるということにだ。しかも、このサイトは個人のサイトではなく、プロが作ったに違いないサイトなのだ。

ソースを見てみると、案の定、この日付は JavaScript を使って、Date オブジェクトの getYear メソッドの戻り値をそのまま出力していた。

現在の JavaScript の標準では、getYear メソッドは年より 1900 を引いた数を返すが、JavaScript 1.2 では、1999 年以前なら 1900 を引いた数を、2000 年以降では年をそのまま返していた。そこで、getYear メソッドを使うなら、戻り値が 2000 より大きいか小さいかを判定して、小さければ 1900 を足すのが定石だ。

戻り値の判定すらしていないということは、このページは 2000 年以降に作られたものだろう。それなら、getFullYear メソッドを使うべきだ。このメソッドはいつでも年をそのまま返す。それよりなにより、このページは PHP を使って生成されている。だったら、JavaScript など使わず、PHP で日付を出力すればよかろうに。

[このカテゴリをまとめて読む。] [最新の記事を読む。]