最新バージョン(2.15.1)では、offsetがutcの場合、parseZone()が正しく機能していないようです。
moment.parseZone( '2016-05-04T00:00:00Z')。format()
=> "2016-05-04T08:00:00Z"悪い
moment.parseZone( '2016-05-04T00:00:00 + 08:00')。format()
=> "2016-05-04T00:00:00 + 08:00"良い
メソッドは2.14.1で良好でした。最近、moment.jsを2.15.1に更新しましたが、新しいバージョンはテストケースに失敗しました。
うん。 それは間違っている。 今夜はそれに取り組むことができないかどうかを見るかもしれません、私はそれがどこで起こったのか知っていると思います。
参考までに、このバグは#3083、b2ee2d444282fcb90abfd43fe562253c73e14b08の修正で導入されました。
これはおそらく関連していますか? 私も2.15.1でテストしました:
t = moment().toISOString();
console.log(t.toString());
parsed = moment.parseZone(t);
console.log(parsed.toISOString());
出力:
2016-10-14T15:33:37.457Z
2016-10-14T17:33:37.457Z
私の現地時間は「ヨーロッパ/ウィーン」なので、2時間の差がどこから来るのかはわかりますが、なぜそうする必要があるのかわかりません。
2.14.1では、期待どおりの出力が得られます。
2016-10-14T15:36:23.956Z
2016-10-14T15:36:23.956Z
PRは私が信じる問題を処理します-#3504-それがまったく間違っているかどうか私に知らせてください。 @maggiepint
https://github.com/moment/moment/issues/3463#issuecomment-253836488から問題が修正されたことを確認でき
最も参考になるコメント
3504は、バグ修正w00tというラベルが付けられました。