【问题标题】:React native moment formatted date in invalid反应原生时刻格式的日期无效
【发布时间】:2019-11-02 22:51:00
【问题描述】:

我的 RN 应用程序中有以下代码。

  getFormattedDate = (date) => {
    const formattedDate = moment(new Date(date)).format('MMMM, DD YYYY');
    return { date: formattedDate };
  }

当我在模拟器上运行它时,格式化的日期会正确显示。但是当我在设备上运行它时,它说,无效日期。我在这里做错了什么?

【问题讨论】:

  • date 长什么样子?它是 ISO 日期字符串吗?
  • 这是格式。 => 2019 年 6 月 20 日

标签: javascript node.js react-native momentjs


【解决方案1】:

根据您的 cmets,我假设 date 参数是一个字符串。如果要从字符串创建新时刻,则必须传递日期格式。然后可以使用.format 格式化新创建的时刻以再次获取字符串。

变化:

const formattedDate = moment(new Date(date)).format('MMMM, DD YYYY');

收件人:

const formattedDate = moment(date,"MMM, DD YYYY").format("MMMM, DD YYYY");

您可以在此处找到有关string format 的更多详细信息。

【讨论】:

    【解决方案2】:

    npm install date-fns --save

    从“日期-fns”导入{格式}

    格式(新日期(),'MMMM,DD YYYY')

    Check this document

    【讨论】:

      【解决方案3】:

      Moment 比 new Date 慢 150 倍。如果您想使用此代码工作,请尝试这样。

       getFormattedDate = async (date) => {
          const formattedDate = await moment(new Date(date)).format('MMMM,DD YYYY');
          return { date: formattedDate };
        }
      

      您可以在此处阅读以了解更多详细信息 https://github.com/moment/moment/issues/731

      由于性能原因,我建议避免使用矩。 使用 new Date () 然后获取日、月和年,并通过根据需要加入字符串来更改为合适的格式。仅使用日期库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-22
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 2020-05-15
        • 2020-07-15
        • 1970-01-01
        相关资源
        最近更新 更多