私はこのトピックについて過去数時間読んでいて、理解できたと思いますが、確認が必要です.
状況
たとえば、カリフォルニアのユーザーが、MySQL に保存されるコメントを投稿できるようにしたいと考えています。次に、たとえばテキサス州のユーザーが、自分のタイムゾーンに合わせて投稿日を調整してコメントを表示できるようにしたいと考えています。
提案された解決策
保管
- すべての日付関数が UTC タイムゾーンを使用するように、アプリケーションの開始時に次を実行します。
date_default_timezone_set('UTC');
$Date = new DateTime();
UTC で現在の日付と時刻を持つ DateTime オブジェクトを取得します。$Date->format()
MySQL の datetime 型の列に挿入する値を取得するために使用します。
表示中
- JavaScript からユーザーのタイムゾーン情報を取得し、Cookie に保存します。
- MySQL SELECT クエリを実行して、datetime 列の値を取得します。
$Date = new DateTime($row['time']);
格納された UTC 時刻で DateTime オブジェクトをインスタンス化します。$Date->setTimezone(new DateTimeZone($userTimezone));
UTC 時刻をユーザーのタイムゾーンに合わせます。- を使用して表示
$Date->format();
それは何をしなければならないかの要点ですか?より良い解決策がありませんか?ご協力いただきありがとうございます!