【问题标题】:react-datepicker gives wrong valuesreact-datepicker 给出错误的值
【发布时间】:2019-07-15 07:34:49
【问题描述】:

我正在构建一个应用程序,我正在使用 react-datepicker 但是我的组件有一个奇怪的行为。所选日期显示错误格式。 这是我正在使用的:

this.state={
   selectedDate: moment().format(),
}

<DatePicker selected={this.state.selectedDate}/>

问题是组件显示以下值: "52//02/2019/"

该组件似乎正在计算一年中当前日期已经过去了多少天。 我也试过moment().format('DD/MM/YYYY'),但没有运气。 任何帮助,将不胜感激。 谢谢

【问题讨论】:

  • 您是否正在寻找类似stackblitz.com/edit/react-f7bzqs 的解决方案?
  • @Jayavel 使用代码中的日期格式显示正确的格式,但现在我无法更改日期。

标签: reactjs react-datepicker


【解决方案1】:

对我来说,当我使用 moment().format('DD MM YYYY') 表示在里面没有任何“/”时它起作用了。试试下面的代码:

    this.state = {
        startDate: moment().format('DD MM YYYY')
    };

【讨论】:

    【解决方案2】:

    好的,我将其发布为答案,以显示对我有用的方法。我认为这太大了,不能发表评论。

    所以我设置:

    this.state={selectedDate:moment().format()}
    

    在我使用的组件中:

    <DatePicker selected={this.state.selectedDate} 
       dateFormat={moment(this.state.selectedDate).format('DD/MM/YYYY')}/>
    

    这样我就能够更改所选日期并获取当前日期值而不是天数。 但是我仍然不确定这个解决方案有多棒。至少它现在对我有用。 希望对其他人有所帮助。

    【讨论】:

      【解决方案3】:

      你应该尝试这样的格式(2这些格式彼此相同):

      value ={moment(this.state.startDay).format('DD/MM/YYYY')}
      format="DD/MM/YYYY"
      

      【讨论】:

        【解决方案4】:

        从 2.0.0 React-datepicker 删除 moment.js 并开始使用 dateFns。

        您需要做的是删除 moment.js 并提供原生 Date 对象作为选择的道具,以及自定义格式字符串作为 fomat 道具。

        () => {
          const [startDate, setStartDate] = useState(new Date());
          return (
            <DatePicker
              dateFormat="yyyy/MM/dd"
              selected={startDate}
              onChange={date => setStartDate(date)}
            />
          );
        };
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-12-26
          • 2019-07-16
          • 2012-10-20
          • 1970-01-01
          • 1970-01-01
          • 2019-10-23
          • 1970-01-01
          相关资源
          最近更新 更多