ant-design/components/date-picker/demo/start-end.md

90 lines
1.9 KiB
Markdown
Raw Normal View History

2016-03-31 09:40:55 +08:00
---
order: 7
2016-09-08 14:09:36 +08:00
title:
2016-06-19 11:17:09 +08:00
zh-CN: 日期范围一
en-US: Date range, case 1
2016-03-31 09:40:55 +08:00
---
2015-10-22 17:27:53 +08:00
2016-06-19 11:17:09 +08:00
## zh-CN
可以设置 `disabledDate` 方法,来约束开始和结束日期。
2015-10-22 17:27:53 +08:00
2016-06-19 11:17:09 +08:00
## en-US
You can use the `disabledDate` property to limit the start and end dates.
2015-10-22 17:27:53 +08:00
````jsx
import { DatePicker } from 'antd';
2015-10-22 17:27:53 +08:00
const DateRange = React.createClass({
2015-10-22 17:27:53 +08:00
getInitialState() {
return {
startValue: null,
2016-05-11 09:32:33 +08:00
endValue: null,
endOpen: false,
2015-10-22 17:27:53 +08:00
};
},
disabledStartDate(startValue) {
if (!startValue || !this.state.endValue) {
return false;
}
return startValue.valueOf() > this.state.endValue.valueOf();
2015-10-22 17:27:53 +08:00
},
2015-10-28 18:35:56 +08:00
disabledEndDate(endValue) {
if (!endValue || !this.state.startValue) {
return false;
}
return endValue.valueOf() <= this.state.startValue.valueOf();
2015-10-28 18:35:56 +08:00
},
2015-10-22 17:27:53 +08:00
onChange(field, value) {
this.setState({
[field]: value,
});
},
2016-03-30 17:06:19 +08:00
onStartChange(value) {
this.onChange('startValue', value);
},
onEndChange(value) {
this.onChange('endValue', value);
},
handleStartOpenChange(open) {
if (!open) {
this.setState({ endOpen: true });
}
},
handleEndOpenChange(open) {
this.setState({ endOpen: open });
},
2015-10-22 17:27:53 +08:00
render() {
return (
<div>
<DatePicker
disabledDate={this.disabledStartDate}
showTime
format="YYYY-MM-DD HH:mm:ss"
value={this.state.startValue}
2016-09-29 14:35:33 +08:00
placeholder="Start"
onChange={this.onStartChange}
onOpenChange={this.handleStartOpenChange}
/>
<DatePicker
disabledDate={this.disabledEndDate}
showTime
format="YYYY-MM-DD HH:mm:ss"
value={this.state.endValue}
2016-09-29 14:35:33 +08:00
placeholder="End"
onChange={this.onEndChange}
open={this.state.endOpen}
onOpenChange={this.handleEndOpenChange}
/>
</div>
);
2016-05-11 09:32:33 +08:00
},
2015-10-22 17:27:53 +08:00
});
ReactDOM.render(
2015-10-28 18:35:56 +08:00
<DateRange />
, mountNode);
2015-10-22 17:27:53 +08:00
````