2016-09-25 5 views
0

ブラウザが設定されている時間帯にかかわらず保存に一貫しているはずの日付オブジェクトを保存して検索しようとしています。実際の時間に影響を与えずにタイムゾーンを変換しますか?

たとえば、私は7PM ISTを持っています。これは、オフセットを使って変換すると、選択したタイムゾーンの午後7時に戻るはずです。 私は、ブラウザの中にあるものは何でもタイムゾーンの午後7時と同じタイムスタンプを盗んできるようにしたい。

私は最終的に私に日付を与える最初の部分

var date = moment(date); 
var localDate = date.clone(); 
localDate.tz(timezone); // continent/city from momentjs 
localDate.tz(timezone); 
localDate.add(date.utcOffset() - localDate.utcOffset(), 'minutes'); 
localDate.toDate(); 

を考え出したと私ができます(私はmongodbに保存しています)

私はブラウザのタイムゾーンの7PMとして戻り値を取得できるように、ローカルタイムゾーンに戻す方法についてはわかりません。あなたは現地時間にUTCから変換retriveたび

moment.utc() 

をDBへ保存する前に

+1

UTCで日付を保存すると、ソースオフセットがなくなります。したがって、ターゲットタイムゾーンで同じ時刻に戻すには、ソースオフセットをキャプチャしてソースオフセット時間に戻し、ターゲットタイムゾーンとの差をオフセットできるようにする必要があります。 Btwが異なる時間帯で同じ時間帯を持つと、時間帯ルールが変更されたときに曖昧さが生じたり、昼間の節約によってゾーンが曖昧になる可能性があります。 – Veeram

+0

ECMAScript DateオブジェクトはUTCで、オフセットを持つホストです。特定のタイムゾーンで午後7時に、オフセットが異なるタイムゾーンに変更すると、時間が変更されます。さもなければ、それは時間の異なる瞬間を表す。 – RobG

答えて

0

はUTC形式に日付を変換します。

moment.utc(utcDateTime, utcDateTimeFormat).local().format(specifiedFormat) 
+0

申し訳ありませんが、日付オブジェクトとしてmongodbに日付を格納する必要があります。 – Bazinga777

+0

私はansを更新しました。それがあなたの目的を解決するかどうか私に教えてください –

関連する問題