ホームページ > バックエンド開発 > PHPチュートリアル > PHP の日付処理を 2038 年の制限を超えて拡張するにはどうすればよいですか?

PHP の日付処理を 2038 年の制限を超えて拡張するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-09 03:29:01
オリジナル
871 人が閲覧しました

How to Extend PHP Date Handling Beyond the 2038 Limit?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート