moment
内部での日付の構築はnew Date()
、JavaScriptでを使用します。new Date()
建設は、いずれかの日付文字列を認識RFC2822またはISOすべてのブラウザでフォーマットを。moment
これらの形式ではない日付でオブジェクトを構築すると、非推奨の警告がスローされます。
非推奨の警告がスローされますが、一部の形式では、moment
オブジェクトはChromeで正常に構築されますが、FirefoxまたはSafariでは構築されません。このため、Chromeで日付を処理すると、期待どおりの結果が得られ(常にではない)Invalid Date
、他の結果がスローされる場合があります。
検討してください02.02.2018
、
Chrome-- moment("02.02.2018")._d
>Fri Feb 02 2018 00:00:00 GMT+0530 (India Standard Time)
Firefox-- moment("02.02.2018")._d
>Invalid Date
サファリ-- moment("02.02.2018")._d
>Invalid Date
したがって、moment.js
推奨/標準形式が使用されない場合は、自己責任で使用してください。
非推奨の警告を抑制するには、
- 前の回答で@Joe Wilsonが提案したように、
moment
構築の日付形式を指定します。
例: moment("02.05.2018", "DD.MM.YYYY").format("DD MM YYYY");
- ISOまたはRFC2822形式で日付を指定します。
例:moment("2018-02-01T18:30:00.000Z")
-ISOフォーマット
moment("Thu, 01 Feb 2018 18:30:00 GMT")
- RFC2822フォーマット- Githubのでフォーマット
- 前の回答で@niutechが提案したように、
moment.suppressDeprecationWarnings = true;
入力フォールバックをすぐに上書きすることをお勧めします。
moment.createFromInputFallback=function (config){
config._d = new Date(config._i);
}
(3)はすべての警告を抑制するため、(4)は日付の構造のフォールバックのみを抑制します。(4)を使用するとInvalid Date
、内部new Date()
が使用され、他の非推奨がコンソールに表示されるため、モーメントをアップグレードしたり、非推奨のメソッドをアプリケーションで置き換えることができます。