Date
Javascript では、オブジェクトのメソッドを使用して、現在のユーザーのローカル タイム ゾーンで日付を表示および操作するのはかなり簡単です。たとえば、出力用と入力用のコンストラクターtoLocaleString()
の 7 引数形式です。Date
そのため、これまでユーザー設定としてタイムゾーンを設定することさえ気にしませんでした。内部的にはすべてが保存され、計算され、UTC を使用してクライアントとやり取りされます。入力と出力の両方について、クライアント側で変換を行います。
たとえば、ユーザーのローカル マシンのタイム ゾーンが米国東部に設定されているとします。私の Web ページを見ると、Unix タイムスタンプで発生したイベントは、1359416775000
「2013 年 1 月 28 日月曜日 18:46:15」と表示され、コードはそれほど複雑ではありません。
new Date(1359416775000).toLocaleString();
しかし、このイベントに関するメールをそのユーザーに送信する必要があるとします。このメールのタイムスタンプを表示するには、どのタイム ゾーンを使用すればよいですか? 明らかな答えは、ユーザーがタイムゾーンを選択できるようにすることです。ここで、私がこれを行い、このユーザーがUS/Eastern
. 偉大な。次にユーザーが私の Web サイトにログインしたときに、ローカル マシンが米国中部時間になっているとします。同じ Javascript コードによって、タイムスタンプが "Mon Jan 28 17 :46:15 2013" としてレンダリングされるようになります。
これは本当に正しい行動ですか?ユーザーがアプリケーションでタイム ゾーンを選択しましたが、それは電子メールにのみ適用されますか?
これは、一般的なベスト プラクティスがあるべきだと私が感じる十分に一般的な問題のように思えます。