ユーザーが希望のタイムゾーンを選択できる環境で、予定のスケジューリングに基づくアプリケーションを作成しています。
TIMESTAMP
いくつかの調査を行った後、すべての日付を保存するために MYSQL を使用することにしました。を使用すると、すべての日付がUTCに変換されて保存されると思いました。TIMESTAMP
次に、TIMESTAMP
データベースから日付を取得するときに、列が MYSQL のタイムゾーンに変換されます。
以下は、現在のセットアップのコード例です。
各ページで、PHP と MYSQL のタイムゾーンが設定されます(ユーザーの選択に基づきます。この例では PST です)。
date_default_timezone_set('US/Pacific');
SET time_zone = '-08:00'
MYSQL に時刻を入力するときは、タイムスタンプを適切な形式に変換するだけです。
date("Y-m-d H:i:s", $unix_timestamp);
データベースからプルするときは、単純に MYSQL を使用して UNIX に変換します。
SELECT UNIX_TIMESTAMP(created_at) as created_at FROM `table` WHERE id=1
これはエレガントで、完璧に機能しているように見えました。MySQL は、TIMESTAMP
. つまり、サマータイムが始まるまでです。これで、UTC 以外のタイムゾーンが選択されると、時刻が1 時間ずれます。
私は何をしているのですか?助けてください!