日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ant design datepicker处理日期范围操作

發布時間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ant design datepicker处理日期范围操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我是歌謠 放棄很容易 但是堅持一定很酷 微信公眾號關注前端小歌謠學習前端知識

1需求

此刻日期之前的不能選擇 當天日期結束時間比開始時間打

基本樣式

<Row gutter={12}><Col span={12}><Form.Item label="活動開始時間">{getFieldDecorator('startTimeLong', {rules: [{ required: true, message: '活動開始時間不能為空'}],})(<DatePickerformat="YYYY-MM-DD HH:mm"onChange={this.onChangeStart}disabledDate={this.handleDataPick}disabledTime={this.disabledDateTime}showTime={{format: 'HH:mm',}}/>)}</Form.Item></Col></Row><Row gutter={12}><Col span={12}><Form.Item label="活動結束時間">{getFieldDecorator('endTimeLong', {rules: [{ required: true, message: '活動結束時間不能為空'}],})(<DatePickerformat="YYYY-MM-DD HH:mm"onChange={this.downChange}disabledDate={this.handleDataPickEnd}disabledTime={this.disabledDateTimeend}showTime={{format: 'HH:mm',}}/>)}</Form.Item></Col></Row>

定義方法

//活動開始時間onChangeStart = (value) => {this.setState({startValue: value,});};//活動結束時間downChange = (value) => {this.setState({endValue: value,});};range = (start, end) => {console.log(start, end);const result = [];for (let i = start; i < end; i++) {result.push(i);}return result;};disabledStartDate = (startValue) => {const endValue = this.state.endValue;const startValues = this.state.startValue;let day = endValue ? new Date(endValue).setHours(0, 0, 0, 0) : 0;let dayStart = startValues ? new Date(startValues).setHours(0, 0, 0, 0) : 0;if (!endValue) {return;}return day < moment(startValue).startOf('day')|| dayStart > moment(startValue).startOf('day');};disabledEndDate = (startValue) => {const endValue = this.state.endValue;const startValues = this.state.startValue;let day = endValue ? new Date(endValue).setHours(0, 0, 0, 0) : 0;let dayStart = startValues ? new Date(startValues).setHours(0, 0, 0, 0): 0;if (!endValue) {return;}return day < moment(startValue).startOf('day') || dayStart > moment(startValue).startOf('day');};//時分限制disabledDateTime = (data) => {const hours = moment(this.state.endValue).format('HH:mm:ss');const time = moment(this.state.endValue).format('YYYY-MM-DD');const currentTime = moment(data).format('YYYY-MM-DD');if (time === currentTime) {return {disabledHours: () => this.range(parseInt(hours.slice(0, 2))+ 1, 24),disabledMinutes: () => this.range(parseInt(hours.slice(3, 5)),60),};}};//時分限制disabledDateTimeend = (data) => {const hours = moment(this.state.startValue).format('HH:mm:ss');const time = moment(this.state.startValue).format('YYYY-MM-DD');const currentTime = moment(data).format('YYYY-MM-DD');if (time === currentTime) {return {disabledHours: () => this.range(0, parseInt(hours.slice(0, 2))),disabledMinutes: () => this.range(0, parseInt(hours.slice(3, 5))+ 1),};}};handleDataPick = (startValue) => {const time = new Date().getTime() - 24 * 60 * 60 * 1000;let data = moment(time);return data > moment(startValue).startOf('day');};handleDataPickEnd = (startValue) => {let startValues = new Date(this.state.startValue).getTime() - 24 * 60 * 60 * 1000;let data = moment(startValues);return data > moment(startValue).startOf('day');};

state 定義狀態

startValue: '',endValue: '',

實現效果

總結

以上是生活随笔為你收集整理的ant design datepicker处理日期范围操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。