PHP の 2038 年の日付制限を克服する
PHP では、通常、日付はミリ秒のタイムスタンプを使用して表されます。その結果、表現できる最大の日付は 2038 年 1 月 19 日の 03:14:07 UTC になります。この制限は、タイムスタンプの保存に 32 ビットの符号付き整数が使用されるために発生します。
ただし、日付の年、月、日のコンポーネントのみを保存する必要がある場合は、この制限を克服することができます。一日の時間に関して。この追加情報を破棄すると、表現できる日付の範囲が効果的に広がります。
このアプローチを実装するには、次のオブジェクト指向のアプローチを使用できます。
class Date { private $year; private $month; private $day; public function __construct($year, $month, $day) { $this->year = $year; $this->month = $month; $this->day = $day; } public function getYear() { return $this->year; } public function getMonth() { return $this->month; } public function getDay() { return $this->day; } public function toTimestamp() { return mktime(0, 0, 0, $this->month, $this->day, $this->year); } }
このクラスDateTime クラスのタイムスタンプに依存せずに日付を作成および操作できます。日付の年、月、日の取得などの基本的な計算を実行し、必要に応じてタイムスタンプに変換することができます。
このアプローチを使用すると、2038 年の制限を克服して、かなり古い日付を計算できます。必要に応じて未来を。ただし、このメソッドでは時刻情報が保持されないことに注意してください。
以上がPHP の日付処理を 2038 年の制限を超えて拡張するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。