2038 年問題: その正体とその解決方法
2038 年問題とは何ですか?
2038 年問題は、以下のソフトウェアとシステムに影響を与えます。日付を 32 ビットの符号付き整数として保存し、1970 年 1 月 1 日の 00:00:00 UTC からの秒数を表します。カウンターが 2038 年 1 月 19 日の 03:14:07 UTC に最大値 (2,147,483,647) を超えると、負の数に「ラップアラウンド」するため、不正確になります。
なぜ、いつ発生するのですか?
この問題は、広範囲の日付を表す 32 ビット整数の容量が限られているために発生します。カウンタが最大値に達すると、超過時間を 1901 年 12 月 13 日の日付として解釈します。
2038 年問題の解き方
Long データ型を使用する:
64 ビット整数を使用するようにソフトウェアをアップグレードしてください日付ストレージのデータ型により、大幅に拡張された時間範囲が提供されます。
MySQL 固有の解決策:
TIMESTAMP の代替
データベースでは、使用を検討してください日付を保存するための 64 ビット データ型 (例: GNU C のlong long) または PHP の BCmath 拡張機能。
既存のアプリケーションのリスクを軽減する
問題を回避するにはTIMESTAMP を使用する既存のアプリケーション:
潜在的な破壊的なユースケース
2038 年より前であっても、 TIMESTAMP はその範囲のみをカバーするため、将来の日付 (誕生日、長期住宅ローンなど) を保存するシステムではエラーが発生する可能性があります。 1970 年から 2038 年。
詳細情報のリソース:
以上が2038年問題: 技術的なタイムワープをどうやって防ぐことができるか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。