GMT 後の Momentjs 日付フォーマット処理 (CEST)

デフォー

こんにちは、ドキュメントを読みましたが、結果として取得した日付が時間の後に「GMT+0200 (CEST)」を適切に処理するかどうかを確認したかっただけです。これは出力のある私のコードです:

var date= moment("Mon Mar 27 2017 18:44:35 GMT+0200 (CEST)", "ddd MMM D YYYY HH:mm:ss 1").format()

console.log(date)
//output:
//2017-03-27T18:44:35+02:00
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

VincenzoC

いいえ、フォーマット文字列はオフセットを適切に処理しません。

moment(String)解析関数(一つだけのパラメータがあることに注意してください)ISO 8601およびRFC 2822個の文字列を受け付けます。この関数は format パラメーターを使用しないため、1どこでも使用する必要はありませんとにかく、月の日が月の名前の後にあるため、入力は RFC 2822 に準拠していません。使用moment(String)すると、次のコードに示すように、コンソールにDeprecation Waringが表示されます。

var date= moment("Mon Mar 27 2017 18:44:35 GMT+0200 (CEST)").format();
console.log(date);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

ドキュメントに次のように記載されているように、前のコードの結果はブラウザー間で一貫性がありません

警告:文字列の解析に対するブラウザのサポートに一貫性がありません。どの形式をサポートする必要があるかについての仕様がないため、一部のブラウザーで機能するものは、他のブラウザーでは機能しません。


コメントで以前に提案したように、UTC オフセットを考慮するためにトークン ( UTC からのオフセット、または) を使用してモーメント文字列 + フォーマット解析関数を使用できますZZ+-HH:mm+-HHmmZ

あなたの場合、moment.utc( ZZ/Zトークン) をlocal()関数組み合わせて、入力を正しく解析できます。

var date= moment.utc("Mon Mar 27 2017 18:44:35 GMT+0200 (CEST)", "ddd MMM D YYYY HH:mm:ss ZZ");
// Local date, but considering input offset
console.log(date.local().format());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

私のソリューションは、オフセット文字列を考慮しているため、あなたのソリューションとは異なることに注意してください。unix()ここに示すように、メソッドを使用してテストできます(環境オフセットを変更してくださいUTC+2)。

var myDate = moment.utc("Mon Mar 27 2017 18:44:35 GMT+0200 (CEST)", "ddd MMM D YYYY HH:mm:ss ZZ");
console.log(myDate.unix()); // 1490633075

var yourDate= moment("Mon Mar 27 2017 18:44:35 GMT+0200 (CEST)", "ddd MMM D YYYY HH:mm:ss 1");
console.log(yourDate.unix()); // output depends on browser offset

var targetDate = moment.utc("2017-03-27 16:44:35");
console.log(targetDate.unix()); // 1490633075
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>


さらに参考として、次のように述べられているタイム ゾーンとオフセットガイドをご覧ください。

Moment.js コア ライブラリは、オフセット値に基づいた時間の調整に関連する機能を提供します。タイム ゾーン データに基づく日付の調整はサポートされていません。これは、Moment TimeZone ライブラリによって提供されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

改行付きのReact / Momentjs日付フォーマット

分類Dev

MomentJsフォーマットの1日遅れ

分類Dev

MomentJSとUTCの日付処理

分類Dev

日付はGMTタイムゾーンの現在の時刻をフォーマットできますか?

分類Dev

momentjsを使用して特定のロケールで日付をフォーマットする

分類Dev

momentjsを使用して、現在のロケールで日付を月までフォーマットします

分類Dev

momentjsでGMT時刻を表示

分類Dev

「CEST」タイムゾーンは、夏時間への移行中または夏時間からの移行中にGMTにオフセットを変更します(すべきではありません)

分類Dev

日時ピッカーのデフォルト値AngularJS / MomentJS

分類Dev

momentjsとブートストラップカレンダーを使用する場合の日付フォーマットの問題

分類Dev

日付ピッカーから日付フォーマットに解析例外の処理

分類Dev

別の時間/分でのmomentjsフォーマット時間

分類Dev

日付までのmomentjs秒

分類Dev

MomentJSの無効な日付

分類Dev

Momentjsの日付検証

分類Dev

現在の日付で5日を追加し、momentjsで出力をフォーマットするにはどうすればよいですか?

分類Dev

momentjsで日付文字列をフォーマットする

分類Dev

MomentJSを使用したこの日付フォーマットコードの何が問題になっていますか?

分類Dev

文字列を日付に変換 (CEST は正常に機能しますが、GMT+02:00 は機能しません)

分類Dev

Momentjsで日付を次のようにフォーマットするにはどうすればよいですか?

分類Dev

日付をフォーマットするときに、一部の日付がBSTとして表示され、一部の日付がGMTとして表示されるのはなぜですか?

分類Dev

Momentjs次の営業日

分類Dev

Angular Materialでmd-datepickerのフォーマットをmomentjsで変更する

分類Dev

Angular Materialでmd-datepickerのフォーマットをmomentjsで変更する

分類Dev

24時間を超えるMomentJS期間のフォーマット

分類Dev

jquery datepickerdateFormatをmomentjsの解析とフォーマットに置き換えます

分類Dev

momentJSを使用して短い日付をフォーマットする方法は?

分類Dev

MomentJSはフォーマット時に日付値を変更しますか?

分類Dev

Momentjs:最初の月までの日付

Related 関連記事

  1. 1

    改行付きのReact / Momentjs日付フォーマット

  2. 2

    MomentJsフォーマットの1日遅れ

  3. 3

    MomentJSとUTCの日付処理

  4. 4

    日付はGMTタイムゾーンの現在の時刻をフォーマットできますか?

  5. 5

    momentjsを使用して特定のロケールで日付をフォーマットする

  6. 6

    momentjsを使用して、現在のロケールで日付を月までフォーマットします

  7. 7

    momentjsでGMT時刻を表示

  8. 8

    「CEST」タイムゾーンは、夏時間への移行中または夏時間からの移行中にGMTにオフセットを変更します(すべきではありません)

  9. 9

    日時ピッカーのデフォルト値AngularJS / MomentJS

  10. 10

    momentjsとブートストラップカレンダーを使用する場合の日付フォーマットの問題

  11. 11

    日付ピッカーから日付フォーマットに解析例外の処理

  12. 12

    別の時間/分でのmomentjsフォーマット時間

  13. 13

    日付までのmomentjs秒

  14. 14

    MomentJSの無効な日付

  15. 15

    Momentjsの日付検証

  16. 16

    現在の日付で5日を追加し、momentjsで出力をフォーマットするにはどうすればよいですか?

  17. 17

    momentjsで日付文字列をフォーマットする

  18. 18

    MomentJSを使用したこの日付フォーマットコードの何が問題になっていますか?

  19. 19

    文字列を日付に変換 (CEST は正常に機能しますが、GMT+02:00 は機能しません)

  20. 20

    Momentjsで日付を次のようにフォーマットするにはどうすればよいですか?

  21. 21

    日付をフォーマットするときに、一部の日付がBSTとして表示され、一部の日付がGMTとして表示されるのはなぜですか?

  22. 22

    Momentjs次の営業日

  23. 23

    Angular Materialでmd-datepickerのフォーマットをmomentjsで変更する

  24. 24

    Angular Materialでmd-datepickerのフォーマットをmomentjsで変更する

  25. 25

    24時間を超えるMomentJS期間のフォーマット

  26. 26

    jquery datepickerdateFormatをmomentjsの解析とフォーマットに置き換えます

  27. 27

    momentJSを使用して短い日付をフォーマットする方法は?

  28. 28

    MomentJSはフォーマット時に日付値を変更しますか?

  29. 29

    Momentjs:最初の月までの日付

ホットタグ

アーカイブ