1

2038 年よりも大きな unix_timestamps を取得しようとすると、PHP 関数mktimeに問題があります。64 ビット OS を使用しています。

サーバー上の PHP バージョン: php -vPHP 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 より大きい日付では機能しません

4

1 に答える 1