2038 年よりも大きな unix_timestamps を取得しようとすると、PHP 関数mktimeに問題があります。64 ビット OS を使用しています。
サーバー上の PHP バージョン:
php -v
PHP 5.1.6 (cli) を提供します (ビルド: 2010 年 11 月 29 日 16:47:46)
php -r 'echo PHP_INT_MAX;'
9223372036854775807を与える
しかし
php -r 'var_dump( mktime(0, 0, 0, 4, 1, 2099) );'
bool(false) を与える
開発サーバー
php -r 'var_dump( mktime(0, 0, 0, 4, 1, 2099) );'
では int(4078677600) が返されます
この PHP 関数が 64 ビット システムで正しく動作しない原因は何ですか? また、 strtotimeは年が 2038 より大きい日付では機能しません