【问题标题】:Moment.js returning NaN in Firefox but not chromeMoment.js 在 Firefox 中返回 NaN 但不是 chrome
【发布时间】:2013-11-07 15:28:11
【问题描述】:

我有以下代码行:

moment("11-10-2013 09:03 AM").diff(moment(),"minutes");

在 Chrome 30.0.1599.101 中,以下行返回一个数字(它会每分钟更改一次,因此确切的值不相关)。

在 Firefox 25.0 中,它返回 NaN

我正在使用 moment.js 2.4.0。

有谁明白为什么这适用于 Chrome 而不是 FF?我感觉这与 Chrome 和 Firefox 解析日期字符串的方式有关,但我无法找到确切的原因。

【问题讨论】:

  • 这不是 moment.js 的错。 Date.parse("11-10-2013 09:03 AM") 在 Firefox 中返回 NaN,但在 chrome 中返回整数。
  • Date.parse("11/10/2013 09:03 AM") 有效!
  • @PranavGupta 你是对的!我刚刚得出了相同的结论并更改了日期的格式。如果您添加答案,我将继续接受它。

标签: javascript momentjs


【解决方案1】:

试试这个

console.log(moment().diff(moment("11-10-2013 09:03 AM", "DD-MM-YYYY hh:mm A"), "minute"));

JSFiddle

【讨论】:

  • 这也是一个非常好的答案,尤其是如果您无法控制要解析的日期字符串的格式。
【解决方案2】:

Date.parse("11/10/2013 09:03 AM")Date.parse("11 10 2013 09:03 AM") 似乎可以在 Firefox 中使用。 Chrome 似乎更允许使用分隔符,允许使用 .- 甚至 ;,但只有通过查看规范才能知道标准是什么。

【讨论】:

    【解决方案3】:

    Moment 需要毫秒作为数字而不是字符串,或者至少原始毫秒作为字符串已被弃用。试试这个

    moment(Number("11-10-2013 09:03 AM"))
    

    【讨论】:

      猜你喜欢
      • 2011-10-05
      • 2012-10-08
      • 2014-05-11
      • 2015-03-14
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 2017-11-10
      • 2013-07-31
      相关资源
      最近更新 更多