1. ホーム
  2. javascript

[解決済み] moment.toString()とmoment.toISOString()の相違点

2022-01-29 03:20:16

質問

を読んでいます。 moment.js ドキュメントを作成することができます。 moment.toISOString() に文字列をフォーマットするのを助けるための関数です。 ISO8601 を標準装備しています。

Also there have a another one reason for why we use moment.toISOString()

moment.toISOString() 関数は、パフォーマンス上の理由から使用しています。

どうかな toISOString() よりも最高のパフォーマンスを発揮します。 moment.toString() しかし、その結果だけは moment.toString()moment.toISOString() .


そこで質問です。

  • を使うべき理由 moment.toISOString() パフォーマンス の理由ですか?

  • とは、どのような違いがあるのでしょうか。 moment.toISOString()moment.toString() ?

解決方法は?

このような問題は、momentJSのソースコードで直接見ることができます :). これは .

export function toString () {
    return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
}

export function toISOString () {
    var m = this.clone().utc();
    if (0 < m.year() && m.year() <= 9999) {
        if ('function' === typeof Date.prototype.toISOString) {
            // native implementation is ~50x faster, use it when we can
            return this.toDate().toISOString();
        } else {
            return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
        }
    } else {
        return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
    }
}

  • toString 使用 .locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ') これはmomentJSのソースコードであり、Javascriptで実行されます。
  • toISOString() javascript の Date オブジェクトを使用する ( this.toDate().toISOString(); ) を、ブラウザでコンパイル・管理します。
<ブロッククオート

ネイティブ実装の方が50倍以上速いので、可能な限りそちらを使用する

しかし、このような違いはほとんどのプロジェクトでは関係ないと思いますが、これでお分かりいただけたと思います。)