6

たとえば、私は主に PHP でプログラミングしています。Unix タイム スタンプが切れたために 2038 年にプログラムが爆発するのを防ぐために、今日何ができますか? この問題を防ぐために機能する特定のアルゴリズム、関数、またはロジックを確認したいと思います。ありがとう。

4

3 に答える 3

7

タイムスタンプを 64 ビット以上の整数として保存します。それまでに MySQL が更新されると確信しているので、TIMESTAMP32 ビットではありません。PHPに関しては、64ビットサーバーを使用している場合、問題はありません。

于 2013-01-17T19:11:11.760 に答える
3

今後 25 年間 32 ビット サーバーまたは PHP バイナリを使用する予定がない限り、問題にはならないと思います。

PHP はインタープリター型言語であるため、$stamp = 1358425440;PHP が読み取るのは単なるテキストの文字列であり、PHPのコンパイル方法に従って X バイトのメモリを割り当てて格納しますしたがって、PHP バイナリを 64 ビット整数をサポートするものに更新する場合、コードを変更する必要はありません。[理論的には、少なくとも。PHP が一般的な関数を変更したり、非推奨にしたりするのが好きであることは誰もが知っています。]

私が確認できる唯一の考慮事項は、PHP の外に整数値を格納することです。mySQLで。この場合、タイムスタンプをUNSIGNED INT、BIGINT、または DATETIME として保存していることを確認する必要があります。

SIGNED INT は 2038 年 1 月 19 日 03:14:07 GMT に終了しますが、UNSIGNED INT は 2106 年 2 月 7 日 06:28:15 GMT まで存続します。

于 2013-01-17T19:31:42.573 に答える
2

変化する

 // 32 bit
    int timestampSec 

 // 64bit
    long timestampSec

内部ストレージ用。

于 2013-01-17T19:12:20.343 に答える