使用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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。