react-datepicker 给出了错误的值

react-datepicker gives wrong values

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

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

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

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

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

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

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

好的,我将此作为答案发布,以展示对我有用的方法。我认为这太大了,无法发表评论。

所以我设置:

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

在我使用的组件中:

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

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

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

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

从 2.0.0 开始,React-datepicker 放弃了 moment.js 并开始使用 dateFns。

您需要做的是删除 moment.js 并提供本机 Date 对象作为 selected 属性,并提供自定义格式字符串作为 fomat 属性。

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