0

私は PHP が初めてで、読んでいる本から、2038 年問題があることに気付きました。これは、タイムスタンプを使用すると、到達できる最も遠い日付が 2038 年 1 月 19 日になることを示しています。この制約を克服するために、dateTimeオブジェクトを使用することをお勧めします。ただし、PHP でテストすると (PHP 5.6.6 で MAMP を使用)、より大きな日付でタイムスタンプを使用しても、完全に機能するようです。

たとえば、次のコードに注意してください。

    <?php
        $date1_timestamp = mktime(13, 30, 0, 1, 12, 2049);
        $date1 = date('Y-m-d H:i:s', $date1_timestamp);
        echo $date1; // output: 2049-01-12 13:30:00
    ?>

PHP サーバーが 2038 年問題に悩まされないのはなぜですか? なぜ正しい値を出力できるのですか?タイムスタンプはそれほど大きな値を保持できませんよね?

4

1 に答える 1

2

これは、PHP の 32 ビット バージョンのみの問題です。実行している 64 ビット バージョンは、より多くのミリ秒数を処理できるため、2038 年よりも将来の値を持つタイムスタンプを表します。

于 2015-09-04T06:03:40.190 に答える