2016-12-02 5 views
0

最後にやりたいこと: *ノードサーバー上の現在のUTC時刻がユーザーのローカル時刻の後であるかどうかを確認します。後で参照するオフセットの保存時間

ノード(Expressjs)では、Facebookからユーザーデータを取得しています。彼らは一貫して私にタイム・オフセット(-8など)とロケール(en_USのような)を与えます。

utcTime + offset >= userTimeをチェックすると、夏時間に基づいてオフになることがあります。

これに対処するための推奨方法は何ですか?

違いがあれば、データをPostgresに保存していますか?それはいくつかの時間機能を持っています。

+0

、http://momentjs.com/を使用し、これは夏時間の変更を検出しません – xShirase

答えて

0

momentjsをご覧ください。日付と時刻、特にUTC supportを扱うときは素晴らしい図書館です。

あなたのために、所定の時間をとり、それをUTC時間に変えて比較してください。日付操作のための

var nodeTime = moment.utc(serverValue); var facebookTime = moment.utc(facebookValue); nodeTime.isAfter(facebookTime); // => true or false

+0

すべてが容易になります。 – kjs3

+0

momentjsのドキュメントをご覧ください。そのためのクエリもあります。[isDST()](http://momentjs.com/docs/#/query/is-daylight-saving-time/)あなたのユースケースに役立つかもしれません。 本当に心配なのであれば、タイムスタンプに変換してそのミリ秒を比較するだけです。そのようにして、タイムゾーンは重要ではありません。詳細については、この回答を参照してください。http://stackoverflow.com/questions/26873200/momentjs-getting-javascript-date-in-utc/26890639#26890639 – clay

関連する問題