129

モーメント オブジェクトの初期値を保存する必要があるという問題に遭遇しましたが、変数が元のオブジェクトと共に変更されないようにするのに問題があります。

残念ながら、moment.jsをフォーマットしようとするとエラーObject.freeze()が返されるため、機能しません。Invalid date

4

3 に答える 3

210

NPM には、 frozen-momentと呼ばれる Moment.js プラグインがmoment().freeze()ありますObject.freeze(moment())

それ以外の場合、バニラの Moment.js には、可変性のclone問題を回避するのに役立つメソッドがあるため、次のようにすることができます。

var a = moment(),
    b = a.clone(); // or moment(a)

アップデート:

この回答を書いてから 2 年が経ちました。今回、日付を操作するための別のライブラリが登場し、多くの注目を集めました: https://date-fns.org/

このライブラリはデフォルトで不変であり、モジュラーで機能的なアーキテクチャに従っています。つまり、ツリー シェイキングとクライアント側のバンドルにより適しています。クライアント側で Webpack を多用するプロジェクトに取り組んでいて、Moment.js がビルドに問題を引き起こしていることに気付いた場合、または Moment.js の可変性が多くの頭痛の種を引き起こしている場合でも、試してみるべきdate-fnsです。

于 2015-06-22T11:51:56.040 に答える