【问题标题】:why chrome and firefox give different output in moment js?为什么chrome和firefox在moment js中给出不同的输出?
【发布时间】:2018-11-13 17:14:24
【问题描述】:

你能告诉我为什么我在 chrome 和 firefox 中得到不同的输出

代码: http://plnkr.co/edit/1wIvVISmgEqcRNnAD971?p=preview

执行这一行

console.log(moment(moment("09-Feb-1983").format('DD-MMM-YYYY'), 'DD-MMM-YYYY', true).isValid())

Chrome 提供:true
火狐给出:false

【问题讨论】:

  • "弃用警告:提供的值不是公认的 RFC2822 或 ISO 格式。时刻构造 回退到 js Date(),这不是在所有浏览器和版本中都可靠。不鼓励使用非 RFC2822/ISO 日期格式,并将在即将发布的主要版本中删除。"
  • @Andreas 那么我将如何解决这个问题
  • 使用合适的格式或尝试寻找合适的格式字符串:momentjs.com/docs/#/parsing/string-format
  • 已经是DD-MMM-YYYY格式字符串
  • 一个合适的格式字符串用于解析字符串

标签: javascript momentjs


【解决方案1】:

基本上,您使用的是 momentjs 默认不解析的格式,因此它回退到本机 Date 实现。哪个 Chrome 支持但不支持 Firefox。如果您在 Chrome 中输入 new Date("09-Feb-1983"),您可以看到这一点,它会给您一个日期,但在 Firefox 中它会显示无效日期。 您所需要的只是通过将格式作为第二个参数来帮助时刻 js。

console.log(moment(moment("09-Feb-1983", 'DD-MMM-YYYY' /* <= This was added!*/).format('DD-MMM-YYYY'), 'DD-MMM-YYYY', true).isValid())

【讨论】:

    猜你喜欢
    • 2016-03-14
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多