web-dev-qa-db-ja.com

間違ったタイムゾーンの新しいDate()

この投稿の時点では、現在の時刻は_2017-01-10T19:23:00.000Z_ですが、new Date()は現在のタイムゾーンより5時間進んで_2017-01-11T00:23:19.521Z_をくれます。これは、MongoDBにデータを保存する方法に影響します。私は時間を5時間前に設定できることを知っています

_var datetime    = new Date();
 datetime.setHours(datetime.getHours()-5); 
_

しかし、私はこれを行うためのより良い方法を好みます。 これを使ってみました。 まだ同じ時間です。コードの他の部分では、最初とはTue Jan 10 2017 19:54:30 GMT-0500 (EST)が異なります。ここで何が悪いのか誰かが指摘できれば私は幸せです。

8
Ekom

moment.js を使用することは、あなたが求めていることを達成する最も簡単な方法です。

moment().format() // "2017-01-11T13:56:15-05:00"

出力はISO-8601形式の文字列で、ローカルタイムゾーンでのタイムゾーンオフセットが有効です。

Dateオブジェクトのさまざまなプロパティを読み取り、それらの値から文字列を構築する多くのコードを使用して、自分でこれを行うことができます。ただし、この方法ではDateオブジェクトに組み込まれていません。

また、タイムゾーンのオフセットによってDateオブジェクトを調整しようとするときはいつでも、単に別の時点を選択していることに注意してください。 Dateオブジェクトで使用されているタイムゾーンの動作を実際に変更しているわけではありません。

3

外部JSファイルを使用したくない場合は、次のコードを使用して現在のタイムゾーンを取得できます。

new Date().toString();
0
KrutPandya