1

私は過去 2 日間、これを読んで過ごしましたが、最終的には、始めたときと同じように混乱してしまいました。この質問が以前に何度も出されたことは知っていますが、どこにも進んでいないようです。

問題は、ここ Stackoverflow を含め、Web のいたるところにさまざまな推奨事項やさまざまなアドバイスが提供されているように見えることです。

だから、誰かが私をきっぱりと正してくれることを望んでいました。

サーバーとコードの両方を完全に制御できることを考えると、ユーザーが特定のアクションを実行したときに正しい日付/時刻がデータベースに保存され、他のタイムゾーンのユーザーも正しい日付/時刻を取得できるようにするための最良の方法は何ですか?タイムゾーンに相対的な時間が返されます。

つまり、フランスのユーザー A がコメントを投稿すると、そのコメントを表示すると正しい時刻が返されます。アメリカのユーザー B がユーザー A のコメントを表示し、投稿された時間が彼のタイムゾーンに修正されたことを確認します。

日付/時刻を mysql に保存する最良の方法と、この日付を取得して、世界中のどこにいても特定のクライアントに対して正しく表示するための最良の方法を知る必要があります。

PHP 5.3 と mySQL 5.5 を使用しています。

前もって感謝します!

4

1 に答える 1

2

日付を UTC で保存できます。

$utctime = gmdate('Y-m-d H:i', date('U')); // get timestamp and convert it to UTC

オフセットを使用してユーザーに表示するには、彼のタイムゾーンを尋ねるか、AJAX を使用するか、IP に基づいて取得を試みることができます。

彼のタイムゾーンが +7 時間だとしましょう:

$usertime = date('Y-m-d H:i', strtotime($utctime)+(7*60*60));

タイムスタンプとして保存できます:$utctime = gmdate('U', date('U'));

于 2012-09-13T07:14:50.873 に答える