react-datepicker给出错误的值

时间:2019-02-21 11:37:55

标签: reactjs react-datepicker

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

@RestController
    @RequestMapping(value="/user")
    public class UserController {

        //no requestmapping annotation here, that is what I say 'omitted'
        public object hello() { 
           // your code 
        }

        //no requestmapping annotation here
        public object bye() { 
         // your code 
        }
        ```

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

问题在于该组件显示以下值: <DatePicker selected={this.state.selectedDate}/>

该组件似乎在计算到一年中的当前日期已经过去了多少天。 我也尝试过"52//02/2019/",但没有运气。 任何帮助,将不胜感激。 谢谢

4 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

所以我设置:

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

以及在我使用的组件中:

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

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

答案 2 :(得分:0)

您应该尝试使用这种格式(2种格式彼此相同):

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

答案 3 :(得分: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)}
    />
  );
};