1. 程式人生 > 程式設計 >Antd中單個DatePicker限定時間輸入範圍操作

Antd中單個DatePicker限定時間輸入範圍操作

1、某個時間段

import React from 'react'; 
import moment from 'moment';
 
class DateDemo extends React.Component{
 disabledDate = (current) => {
  return current < moment().startOf('day') || current > moment().add(6,'day') ;
 };
 
 datePickerChange = (date) => {
  console.log(date,'date即為DatePicker選中的時間');
 }
 
 render(){
  return(
   <div>
    <DatePicker 
     disabledDate={this.disabledDate}
     onChange={this.datePickerChange}
    />
   </div>
  )
 }
}

線上檢視:單個DatePicker限定時間輸入範圍

Antd中單個DatePicker限定時間輸入範圍操作

這樣就只能選擇從當天算起到七天後的日期,但是時間的時分秒是你選擇的時候系統時間的時分秒,這個有需要的話要額外處理,比如設定為當天起始值:

...
//setHours(hours,min,sec,ms)
let day = date ? new Date(date).setHours(0,0): 0;
...

disabledDate方法中時間相關api是配合JS的日期處理類庫:Moment.js使用的,moment().startOf('day') 代表今天,moment().add(6,'day')代表今天加後6天共七天。其他用法可以去官網檢視:http://momentjs.cn/

2、向前或向後時間範圍

...
 disabledDate = (current) => {
   return current && current < moment().endOf('day');
 }
...

Antd中單個DatePicker限定時間輸入範圍操作

更詳細的API可以去Antd官網看:https://ant.design/components/date-picker-cn/

補充知識:antd中的disabledDate不可選擇時間的處理

我就廢話不多說了,大家還是直接看程式碼吧~

handleData(time){
if(!time){
return false
}else{
// 大於當前日期不能選 time > moment()
// 小於當前日期不能選 time < moment().subtract(1,“days”)
// 只能選前7後7 time < moment().subtract(7,“days”) || time > moment().add(7,‘d')
return time < moment().subtract(7,‘d')
}
}*

disabledDate = (current) => {
// Can not select days before today and today
//return current && current < moment().endOf(‘day');!!!!!當天之前的不可選,包括當天
return current < moment().subtract(1,‘day') !!!!!當天之前的不可選,不包括當天
}

以上這篇Antd中單個DatePicker限定時間輸入範圍操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。