私はこのプロセスを正しく理解していることを確認するためにこの投稿を作成しています。ポストタイムは、さまざまなタイムゾーンのユーザーに対して正しく表示および格納されます。PHPは保存された時間データを表示し、異なる時間帯を考慮しながら時間データを保存します
時間を記憶
最初のステップは、GMTのJavaScript関数を使用してフォーマットをオフセットとしてユーザのタイムゾーンを取得し、セッション変数に格納されています。たとえば、$ timezone変数にはGMT -4が格納されます。
$timezone=$_SESSION['time'];
次に、ユーザーにタイムゾーンを設定すると、次のようになります。ユーザーが投稿を作成すると、投稿時刻をmysqlデータベースに保存します。これをUTC形式で保存する必要があります。私はこれをどのようにして行うのですか?現在私は時刻データを保存しています。それは次のようなものです。私のスタンプフィールドは日時フォーマットであり、できるだけそのまま残したいと思っています。
INSERT INTO posts (stamp) VALUES (now())
now()の代わりに私のデータベースに挿入されるUTC形式を取得する関数は何ですか? $ timezoneを使用してUTC日付を生成するPHP関数を使用する必要があると仮定します。時間
次の表示
、UTCの日付がDBに格納されると。私が設定した$ timezone変数に基づいて、ユーザーにデータを表示する必要があります。私は時間を表示するとき
だから、私は現在、私は、これはUTC時刻を表示する、UTC時刻などのデータを保存している
echo date('F d', strtotime($list1['stamp']));
を行うたら、しかし、私はUTCが彼らのためにオフセットをユーザーに示す必要があります私は$list['stamp']
をUTC時間で$ timezoneを使ってユーザーのタイムゾーンに変換する必要があります。これのために私はどのような機能を持っていますか?
tl:dr これは私がこの作業を行うために必要なものです。あなたが何か提案や、私が考慮していない項目があるかどうか、また、データベースに格納するために時間をUTCに変換するためにどの機能を使用する必要があるのかわかっている場合、UTC時間$ timezone変数を使用してユーザーを表示します。データベースにUTC時刻を挿入するための
正解ではありませんが、DateTimeクラスとそのsetTimezoneメソッドが過去にかなり有用であることがわかりました。 – Corbin
クールな感謝、私はそれを調べます。 – arboles