0

ユーザーが「11/28/2012 11:34 am」の形式で日時を入力する mod に取り組んでいます。

次に、strtotime を使用してタイムスタンプに変換し、データベースに保存しています。

次に、次の日付 (DateTime, 'DM jS g:i A') を使用して、テンプレートでユーザーに表示しています。

問題は、イベントを作成したユーザーと同じタイムゾーンにいないユーザーが、タイムゾーンを反映するように更新された正しい時刻を取得しないことです。

ユーザー投稿とユーザー表示の両方のタイムゾーン オフセットにアクセスできます。

私の質問は、タイムゾーンの違いをどのように補正すればよいですか?

4

1 に答える 1

1

文字列を実際のタイムゾーンに変換する場合は、これを使用して、値を送信するユーザーのタイムゾーンでサーバーのタイムゾーンを上書きします:http://us3.php.net/manual/en/function.date-default-timezone-set.php

後で取得する場合は、同じ関数を使用して、サーバーのタイムゾーンを現在のユーザーのタイムゾーン(現時点で日時を表示しているユーザーに適したもの)に上書きします。

また、データベースに適切に保存するようにしてください。できれば、PHP内のUnixタイムスタンプ、データベース内のTIMESTAMP列、データベースに保存するときのFROM_UNIXTIME()データベース関数、データベースから取得するときのUNIX_TIMESTAMP()を使用してください(すべてMySql RDBMSで有効です。チェックしてください)。異なる場合は独自のDBMS)。

于 2012-11-28T17:32:11.997 に答える