【问题标题】:cant converting date format with moment js无法使用时刻 js 转换日期格式
【发布时间】:2019-03-04 11:34:01
【问题描述】:

我想把March 5th 2019这个格式转换成2019-02-28

moment(this.state.preferedDate).format('YYYY-MM-DD')

使用此代码执行任务,但无法正常工作,收到以下消息

弃用警告:提供的值不是可识别的 RFC2822 或 ISO 格式。时刻构造回退到 js Date(), 用moment js怎么做

【问题讨论】:

  • March 5th 2019确实不是RFC2822或ISO8601格式,有什么不清楚的地方?

标签: react-native momentjs


【解决方案1】:

当您从不受支持的 ISO 8601 格式的字符串创建 Moment 时会出现此警告消息,请参阅 [this][1] 以获取支持的格式列表)。

在这种情况下,您似乎尝试解析不是 ISO 格式的字符串 27/04/2016。如果您告诉 Moment 格式是什么,您可以在没有警告的情况下解析此格式:moment("27/04/2016", "DD/MM/2016")。或者,您可以更改输入格式以匹配 ISO 规范:moment("2016-04-27")

另外,做moment(new Date("27/04/2016")).format.... 似乎有效。但我认为它们是这种方法中的一些问题,可能与语言环境等有关。

你可以走了!

【讨论】:

    【解决方案2】:

    试试这个解决方案 - moment('March 5th 2019', 'MMM Do YYYY').format('YYYY-MM-DD')

    在您的代码中,它应该如下所示 -moment(this.state.preferedDate, 'MMM Do YYYY').format('YYYY-MM-DD')

    【讨论】:

      【解决方案3】:

      你不能直接转换它。您需要手动进行如下操作

      var month = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']
      var date = "March 5th 2019";
      var temp = date.split(" ");
      var output = temp[2]+"-"+month.indexOf(temp[0].toLowerCase())+"-"+temp[1].slice(0,-2);
      

      【讨论】:

        猜你喜欢
        • 2018-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-15
        • 1970-01-01
        • 2016-10-08
        相关资源
        最近更新 更多