您好,登錄后才能下訂單哦!
使用ant design日期控件實現控制月份?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
總體效果:
展開后:
選值后:
代碼部分:
1、引入:
import { DatePicker } from 'antd';
2、主體部分:
export default class PersonInfo extends Component{ constructor() { super(); //設置狀態,存儲日期 this.state = { workMode: ['month', 'month'], workValue: [], }; } render(){ //主體引用 const {RangePicker} = DatePicker; return( <RangePicker placeholder={['開始日期', '結束日期']} format="YYYY-MM" value={this.state.workValue} mode={this.state.workMode} onPanelChange={this.workHandlePanelChange} onChange={this.workOnChange} />
函數:
//日期面板時間值改變事件 workHandlePanelChange = (value, mode) => { this.setState({ workValue:value, workMode: [ mode[0] === 'date' ? 'month' : mode[0], mode[1] === 'date' ? 'month' : mode[1], ], }); } //日期清空時觸發 workOnChange = () => { this.setState({ workMode: ['month', 'month'], workValue: [], }) }
獲取日期值:
//其中this.state.workValue的兩個值都是毫秒,formatDate為自寫的轉換函數 let workYearBegin = this.formatDate(this.state.workValue[0]); let workYearEnd = this.formatDate(this.state.workValue[1]); formatDate = (time) => { if(!time){ return ''; } let date = new Date(time);//毫秒轉換成日期 let year = date.getFullYear(); let month = (date.getMonth() + 1).toString().padStart(2,'0');//月份不足兩位數在前面補0 return year + '-' + month;//格式控制 }
補充知識:eact使用ant時設置DatePicker日期控件中文顯示
方式一:局部設置
import 'moment/locale/zh-cn'; import locale from 'antd/lib/date-picker/locale/zh_CN'; //調用時引用locale <DatePicker format="YYYY-MM-DD" placeholder="" locale={locale} />
方式二:全局設置
import moment from 'moment'; import 'moment/locale/zh-cn'; moment.locale('zh-cn');
關于使用ant design日期控件實現控制月份問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。