【问题标题】:How can I add or subtract on Moment JS value in React Native State?如何在 React Native State 中添加或减去 Moment JS 值?
【发布时间】:2019-09-07 18:45:56
【问题描述】:

所以我的问题是如何让我的状态(日期)从中增加或减少价值。

我说的是一个 React Native 应用程序,我在其中使用 Moment.js。


state = {
    date: this.props.navigation.getParam("date")
  };

这是我的日期状态,它正确显示了它传递的 React-Navigation 和它的工作正常。

  dateBackHandler=()=>{
    Moment(this.state.date).subtract(1, "d")
  }

  dateForwardHandler=()=>{
    Moment(this.state.date).add(1, "d")
  }

这些是我的 2 个操作状态的函数,应该从中增加或减少一天。

我的问题是我得到了错误:

弃用警告:提供的值不是可识别的 RFC2822 或 ISO 格式。 moment 构造回退到 js Date(),这在所有浏览器和版本中并不可靠。

我点击了链接并阅读了 Moment.js 文档。

我需要一种在当前状态下调用函数的方法。

编辑:有人知道我的 setState 在函数内部应该是什么样子吗?

编辑:通过传递没有格式的日期,我的功能实际上可以工作,它们会改变日期,但由于显示的格式,它看起来很丑。

【问题讨论】:

  • props.navigation.getParam("date");的格式是什么?
  • 我将其作为字符串获取
  • 我的意思是数据的格式,例如:dd.MM.YYYY HH:mm:ss
  • 啊我把它格式化为 DD-MM-YY 所以今天:17-04-19
  • 然后试试moment(this.state.date, 'DD-MM-YY').add(5, 'd')

标签: javascript reactjs react-native momentjs


【解决方案1】:

警告是关于您传递给时刻的日期格式,即this.state.date 是时刻无法识别的格式,因此当将 this.state.date 传递给时刻时,还会将日期格式与它一起传递为逗号分开。 例如:moment('17-04-19',"DD-MM-YY")

在您的代码中测试console.log

 console.log(moment('17-04-19',"DD-MM-YY").subtract(1, "d").format('DD-MM-YY')); 
 // this will print --> 16-04-19

因此,您的函数可能需要更改以从 state.date 格式中获取有效的日期格式,如下所示:

 dateBackHandler=()=> {
   Moment(this.state.date, "DD-MM-YY").subtract(1, "d") // assuming your state.date is in format "DD-MM-YY"
 }

 dateForwardHandler=()=>{
   Moment(this.state.date, "DD-MM-YY").add(1, "d") // assuming your state.date is in format "DD-MM-YY"
 }

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    您可以将日期的格式更改为兼容的格式,然后将其更改回您需要的格式:

    moment(moment(this.state.date).add(5,'d').format('YYYY-MM-DD')).format('YYYY-MM-DD')
    

    【讨论】:

      【解决方案3】:

      这不是错误,而是警告。问题是this.state.date 的格式当时无法识别。以 ISO 格式发送一些东西(即2019-04-15T00:00:00Z)。 19-04-1515/04/2019 之类的东西暂时不是有效值)

      【讨论】:

      • 好吧,可能是因为我得到它是 17-04-19,你知道如何转换回来吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多