禁用秒没有意义,这里处理一下,只禁用到分。
<DatePicker
format="YYYY-MM-DD HH:mm:ss"
disabledDate={disabledDate}
disabledTime={disabledDateTimed}
showTime={{ defaultValue: moment().add(1, 'minute').startOf('minute') }}
/>
const range = (start: number, end: number) => {
const result = [];
for (let i = start; i < end; i++) {
result.push(i);
}
return result;
};
const disabledDate: RangePickerProps['disabledDate'] = (current) => {
// 只能选择今天及今天之后的日期
return current && current < moment().startOf('day');
};
const disabledDateTime = (current: moment.Moment | null) => {
if (current && current.isSame(moment(), 'day')) {
// 如果日期是今天,则只能选择当前时间之后的时间
return {
disabledHours: () => {
const currentHour = moment().hour();
return range(0, 24).splice(0, currentHour);
},
disabledMinutes: () => {
const currentMinute = moment().minute();
return range(0, 60).splice(0, currentMinute + 1);
},
// disabledSeconds: () => {
// const currentSecond = moment().second();
// return range(0, 60).splice(0, currentSecond);
// },
};
}
return null;
};