2016-12-30 3 views
1

私のクライアントは米国内のインドとサーバにあります。ユーザーがインドから自分の投稿を提出すれば、アメリカのサーバーに保存されるので、投稿時刻をユーザーに表示すると、それはUSAタイムになります。クライアントごとにタイムゾーンを表示したいタイムゾーンを維持する方法

+1

js日付にはタイムゾーンがありません。数字は単なる数字なので、簡単に再フォーマットすることができます。 – dandavis

+0

これが役立つかどうかを確認してください。 http://stackoverflow.com/questions/41264307/how-to-handle-date-between-india-time-on-client-side-and-server-date-in-us-time/41265842#41265842 – Veeram

答えて

2

タイムゾーンを処理する最も簡単な方法は、背後でEpoch timeで作業し、レンダリング時のユーザーの優先するタイムゾーン(またはクライアント側のコード)に変換することです。

エポックタイムは、1970年1月1日にロンドンになってからの秒数です。たとえば、現在の時刻は1483130714です。これは、日付、タイムゾーン、ロケール、不満足なことを気にすることなく、正確な瞬間を表す簡単な数値を簡単に比較しソートできることを意味します。事実上、普及しているすべての言語では、これらの数値を独自のタイムスタンプ値に解析できます。 JavaScriptではnew Date(1483130714)でこれを行うことができます。あなたは日付オブジェクトを取得し、あなたはそれを提示することができます(例えば、toLocaleString)。

エポック時間を使用しない場合は、次善策であるUTCを使用することをお勧めします。重要なことは、一貫して普遍的に理解できる形式で保存し、必要に応じてユーザーの優先形式に変換することです。

1

日付をUTCで保存してから、ブラウザのカルチャとタイムゾーンに従って変換する必要があります。したがって、すべての日付をUTCで保存し、ブラウザの文化に応じてオフセットを追加することができます。これは、ユーザーが間違った文化や時間を設定すると難しいことがあります。

関連する問題