DatePicker組件默認語言是英語,需要設置為中文的話,需要安裝moment。
import moment from "moment";
import "moment/locale/zh-cn"
format屬性,設置日期的格式,如“2020-02-28”。
設置日期
選擇日期是今天之前【包含今天】
需要和moment搭配應用
// 設置默認的起始日期
const disabledDate = (current) => {
console.log(current)
return current > moment().startOf("day");
}
<DatePicker disabledDate={disabledDate}
效果如下圖:

如果是選擇今天之后的日期【包含今天】
const disabledDate = (current) => {
console.log(current)
return current > moment().startOf("day");
}
如圖:

關於moment的API,可以參考 moment 的具體文檔
獲取時間值
官網提供的函數:
function onChange(date, dateString) {
console.log(date, dateString);
// date 就是原始的日期數值,dateString 就是我們需要的日期格式
}

如果DatePicker組件嵌套在form表單里面,有兩種方式獲取日期值
第一種方式:
使用官網提供的函數,並在State中設置日期參數
constructor(){
super()
this.state={
date:""
}
}
onChange = (value,dateString)=>{
this.setState({
date:dateString
})
}
handleSubmit1 = e => {
const that = this;
e.preventDefault();
this.props.form.validateFieldsAndScroll((err, values) => {
if (!err) {
console.log(values.date)
that.setState({
date: that.state.date
})
that.getData(1, 10, that.state.date);
}
});
};
<Form className="ant-advanced-search-form" onSubmit={this.handleSubmit1}>
<div className="search-report">
<Form.Item label="日期">
{getFieldDecorator("date", {
rules: [
{
required: false,
message: "選擇日期",
},
],
})(<DatePicker onChange={this.onChange} format="YYYY-MM-DD" placeholder="選擇日期" />)}
</Form.Item>
<Button type="primary" htmlType="submit">查詢</Button>
</div>
</Form>
這種方式在提交表單的時候,直接從state中獲取日期參數值。
第二種方式:
使用moment轉換日期
handleSubmit3 = e => {
e.preventDefault();
this.props.form.validateFieldsAndScroll((err, values) => {
const data = moment(values.date).format("YYYY-MM-DD")
console.log(data)
});
};
補充知識:moment.js可以通過 .format()方法將時間變成字符串:
我就廢話不多說了,就是一行代碼的事,來看看吧~
moment(moment().add(1, "M")).format(dateFormat)
