moment.toString()和moment.toISOString()之间的区别

Ram*_*ran 12 javascript momentjs

我有阅读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()

seb*_*ier 19

你可以直接看一下这个问题的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]');
    }
}
Run Code Online (Sandbox Code Playgroud)
  • toString使用的.locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ')是在Javascript中执行的momentJS源代码
  • toISOString()使用javascript Date object(this.toDate().toISOString();),它由浏览器编译和管理.

本机实现速度提高约50倍,我们可以使用它

但是,我认为这种差异与大多数项目无关,但现在你知道了.;)

  • 一个在您的浏览器中用 Javascript 执行,另一个由您的浏览器以本地语言执行,速度快 50 倍。在这种情况下,将解释 Javascript。您可以在维基百科上查看有关解释语言的详细信息:D https://en.wikipedia.org/wiki/Interpreted_language (3认同)