web-dev-qa-db-ja.com

Moment.jsが間違った日付を返す

2013年10月29日の日時をこの形式で変換するためにモーメントを使用しようとしています

2013-10-29T00:00:00.000Z

しかし私がこれをするとき

moment('2013-10-29T00:00:00.000Z').format("MMM Do, YYYY")

2013年10月28日いつ返されるか2013年10月29日を返します

この問題を解決する方法についてアイデアがあれば、教えてください。ありがとうございました

13

UTCでの時間を必要とする場合は、次を使用します。

moment.utc('2013-10-29T00:00:00.000')

@MattJohnsonが指摘したように、momentコンストラクターを使用すると、現地時間に変換されます。代わりに(utcメソッドを使用したくない場合)、Z+0に置き換えることができます。文字列の日付/時刻のオプションを参照してください http://momentjs.com/docs/#/parsing/string-format/

12
Jeff Storey

これを行うことにより、タイムゾーン設定を調整できます。

moment('2013-10-29T00:00:00.000Z').zone(0).format("MMM Do, YYYY");

[〜#〜]フィドル[〜#〜]

よりセマンティックであるため、先に進んでマットの提案も追加します。

moment('2013-10-29T00:00:00.000Z').utc().format("MMM Do, YYYY");
4
kalley