1. ホーム
  2. javascript

[解決済み] moment.jsでRFC2822の日付を変換しようとすると「非推奨の警告: moment construction falls back to js Date」。

2022-04-22 05:01:12

質問

moment.jsを使って、サーバーサイドの日付時刻をローカル時刻に変換するために、以下のコードを使用しています。

 moment(moment('Wed, 23 Apr 2014 09:54:51 +0000').format('lll')).fromNow()

しかし、私は取得しています。

非推奨警告: 瞬間建設は js Date にフォールバックします。これは推奨されませんので、今後のメジャーリリースで削除される予定です。次のページを参照してください。 https://github.com/moment/moment/issues/1407 をご覧ください。

どうやら取り除けないようです! どうしたら直るのでしょうか?

解決方法は?

警告を消すには、以下のどちらかが必要です。

  • ISO フォーマットされた日付文字列を渡す。

    moment('2014-04-23T09:54:51');

  • 今持っている文字列を渡しますが、その文字列がどのような形式であるかをモーメントに伝えてください。

    moment('Wed, 23 Apr 2014 09:54:51 +0000', 'ddd, DD MMM YYYY HH:mm:ss ZZ');

  • 文字列をJavaScriptのDateオブジェクトに変換し、それをMomentに渡します。

    moment(new Date('Wed, 23 Apr 2014 09:54:51 +0000'));

最後のオプションは、Moment が今のところサポートしている組み込みのフォールバックで、非推奨のコンソール警告が表示されます。 今後のリリースでは、このフォールバックをサポートしないとのことです。 彼らは new Date('my date') はあまりにも予測不可能です。