はじめて2038年問題に遭遇しました。
というか自分の適当さからブチ当たっただけですけど。
当サイトでだした
http://zeijaku.net/blog_history/?search=201205250905
というのでログイン時間の経過を確認してマイナスならログイン時間終了と
いった簡単なものを作ることがあったんですが、テストケースとして有効期限を9999年12月31日のものを作成しました。
するとなぜかマイナスになってログイン終了となる。
永遠にログイン(9999年までですけど)出来るはずなのにマイナスと判断される。
一体なにが原因なのかと思いきや色々と調べると、この関数で使用しているmktimeは32bit符号整数なので2038年1月19日までが限界となり、それ以降はおかしなことになると・・・。
これで半日潰してしまいました。
みなさんテストは面倒くさがらずにちゃんと現実に即した値を使うようにしましょう・・・・
関連記事