1. ホーム
  2. javascript

[解決済み] moment.jsで日付をISO 8601のようにフォーマットするにはどうしたらいいですか?

2022-01-31 09:57:44

質問内容

このドキュメントには moment.ISO_8601 を書式オプションとして使用することができます(2.7.0から http://momentjs.com/docs/#/parsing/special-formats/ )が、どちらも動作しません(2.7.0でも)。

var date = moment();
date.format(moment.ISO_8601); // error
moment.format(date, moment.ISO_8601); // error

( http://jsfiddle.net/b3d6uy05/1/ )

moment.jsからISO 8601を取得するにはどうすればよいですか?

どのように解決するのですか?

moment().toISOString(); // or format() - see below

http://momentjs.com/docs/#/displaying/as-iso-string/

更新情報 sennet さんの回答: と @dvlsg さんのコメントに基づいています。 フィドル との間に違いがあることに留意する必要があります。 formattoISOString . どちらも正しいのですが、根本的な処理が異なります。 toISOString は Date オブジェクトに変換して UTC に設定し、ネイティブの Date プロトタイプ関数を使って ISO8601 を UTC で出力し、ミリ秒を出力します ( YYYY-MM-DD[T]HH:mm:ss.SSS[Z] ). 一方 format はデフォルトの書式を使用します ( YYYY-MM-DDTHH:mm:ssZ )からミリ秒を抜き、タイムゾーンのオフセットを維持します。

を開きました。 問題 予期せぬ結果につながる可能性があると思うので。