1

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

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

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

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

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

4

4 回答 4

0

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

所以我设置:

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

在我使用的组件中:

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

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

于 2019-02-21T15:49:23.710 回答
0

您应该尝试这样格式化(2个这些格式彼此相同):

value ={moment(this.state.startDay).format('DD/MM/YYYY')}
format="DD/MM/YYYY"
于 2020-07-10T17:18:27.763 回答
0

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

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

于 2019-02-21T13:53:58.697 回答
0

从 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)}
    />
  );
};
于 2020-12-17T11:31:41.750 回答