Разница между моментом.toString() и момент.toISOString()

у меня есть чтение 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()?

1 ответов


вы можете посмотреть непосредственно в исходном коде 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();), который компилируется и управляется вашим браузером.

собственная реализация ~50x быстрее, используйте его, когда мы можем

однако, я думаю, что такая разница не актуален для большинства проектов, но теперь вы знаете. ;)