React搭配Antd之使用RangePicker踩坑
需求:设置默认的时间,使用属性defaultValue的时候发现会显示当前的时间整点,需要设置一个时间为当前的时间前五分钟的数据为默认值; 最后发现,只是单纯的设置defaultValue是有问题的,需要value和defaultValue搭配使用
startTimes是获取的当前时间之前的五分钟时间,endTime是当前的时间,DateFormat是日期格式
const DateFormat = 'YYYY-MM-DD HH:mm:ss'; <Form.Item label="选择日期:"> <RangePicker defaultValue={[moment(startTime), moment(endTime)]} value={[moment(startTime, DateFormat), moment(endTime, DateFormat)]} showTime format={DateFormat} key={this.state.keyValue} onChange={this.test} /> </Form.Item> //获取当前时间的前五分钟 getNowFormatDate = () => { var date = new Date(); var seperator1 = '-'; var seperator2 = ':'; //前十分钟时间 var minutes = parseInt('5'); var interTimes = minutes * 60 * 1000; var interTimes = parseInt(interTimes); date = new Date(Date.parse(date) - interTimes); var month = date.getMonth() + 1; var strDate = date.getDate(); var hour = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); if (month >= 1 && month <= 9) { month = '0' + month; } if (strDate >= 0 && strDate <= 9) { strDate = '0' + strDate; } if (hour >= 0 && hour <= 9) { hour = '0' + hour; } if (minutes >= 0 && minutes <= 9) { minutes = '0' + minutes; } if (seconds >= 0 && seconds <= 9) { seconds = '0' + seconds; } var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + ' ' + hour + seperator2 + minutes + seperator2 + seconds; return currentdate; }; //获取当前时间 getNowTimeFormatDate = () => { var date = new Date(); date.setMinutes(3); var seperator1 = '-'; var seperator2 = ':'; //前十分钟时间 var interTimes = minutes * 60 * 1000; var interTimes = parseInt(interTimes); date = new Date(); var month = date.getMonth() + 1; var strDate = date.getDate(); var hour = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); if (month >= 1 && month <= 9) { month = '0' + month; } if (strDate >= 0 && strDate <= 9) { strDate = '0' + strDate; } if (hour >= 0 && hour <= 9) { hour = '0' + hour; } if (minutes >= 0 && minutes <= 9) { minutes = '0' + minutes; } if (seconds >= 0 && seconds <= 9) { seconds = '0' + seconds; } var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + ' ' + hour + seperator2 + minutes + seperator2 + seconds; return currentdate; }; 复制代码
最后结果如图;
作者:安安小菜鸟
链接:https://juejin.cn/post/7024321383370866696