我正在构建一个应用程序,并且正在使用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/"
,但没有运气。
任何帮助,将不胜感激。
谢谢
答案 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)}
/>
);
};