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: '',

实现效果

在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405966.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入react技术栈(11):样式处理

我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注前端小歌谣 基本样式设置 样式中的像素值 使用className库 Css Modules css模块化遇到了哪些问题 css模块化方案 样式默认局部 使用compose组装样式 class命名技巧 实现css与js共享 外部如何覆盖局部样式 设置样式共存we…

python .center用法_Python Pandas Series.str.center()用法及代码示例

Series.str可用于以字符串形式访问系列的值并对其应用几种方法。 Pandas Series.str.center()函数用于在系列/索引中的字符串的左侧和右侧填充其他字符。该功能等效于Python的str.center()。用法&#xff1a; Series.str.center(width, fillchar’ ‘)参数&#xff1a;width:产…

点到点链路上的OSPF协议

点到点链路上的OSPF协议 OSPF的几个术语&#xff1a; 链路&#xff1a;路由器用来连接网络的接口&#xff1b; 链路状态&#xff1a;描述路由器的接口及其与邻居路由器的关系。所有链路状态信息构成链路状态数据库&#xff1b; 区域&#xff1a;有相同区域标识的一组路由器和网…

用css实现三角效果

CSS border原理 一个div或者元素的border并不是我们直观意义上的一条有高度的线&#xff0c;而是一个等高梯形或者三角形&#xff08;宽高为0时&#xff09;&#xff0c;可以看一下效果&#xff1a; HTML: <div class"arrow1"></div> CSS: .arrow1{ font…

广播多路访问链路上的OSPF

通过本实验可以了解&#xff1a; 1、 路由器OSPF的启动过程&#xff1b; 2、 启用路由接口&#xff0c;并通告网络所在路由&#xff1b; 3、 DR选举的控制&#xff1b; 4、 广播多路访问链路的特征&#xff1b; 实验拓扑图&#xff1a; 实验步骤&#xff1a; 配置各个路由器fa0…

Android:生命周期案例

在学习Android应用生命周期章节中&#xff0c;书本上写的有点笼统&#xff0c;较难理解。为了理解的更深&#xff0c;写了个程序测试一下。 1、在layout文件夹中建一个dialog_layout.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout x…

java面试没有全部答对_十道java基础面试题,你能保证全答对吗?

java初级开发面试中经常被问到的问题有好多&#xff0c;下面总结一下常见的问题&#xff0c;先给问题&#xff0c;大家思考一下再看答案。1.JDK 和 JRE 有什么区别&#xff1f;2. 和 equals 有什么区别&#xff1f;3.说说final在java中的作用。4.String类的常用方法有哪些&…

scratch的积木相与java的_scratch课堂:积木块详解

scratch作为麻省理工学院推出的少儿编程工具&#xff0c;简单易用&#xff0c;十分好学。scratch不仅仅是将编程以积木的形式进行了表现&#xff0c;更是将程序的内容进行了打包处理&#xff0c;让我们只需要根据字面的意思进行拼接即可实现功能&#xff0c;不过scratch的代码还…

java打包python到exe文件

最近想把写的python代码打包&#xff0c;以供没用安装python环境的同事使用&#xff0c;需求如下&#xff1a; 无python环境也可执行文件尽量少&#xff0c;不要太乱程序体积尽量小如果需要更新的话重复类库不用更新采用方案如下&#xff1a; 使用py2exe自动导入类库使用7-ZIP压…

React开发(176):导出所有接口供使用

export * from ‘./order’; export * from ‘./wallet’; export * from ‘./walletAccount’; export * from ‘./walletTrade’;

[vim] vim中使用cscope的安装与使用

From: http://blog.sina.com.cn/s/blog_498a6eeb0100v05m.html 1. 下载cscope-15.7 http://dldx.csdn.net/fd.php?i878111800792509&s924cf0d6a0f63bb6ca24f900 ba3fcad8解压所里面有三个文件&#xff0c; 放到vim的安装目录下即可。2.建索引-bBuild the cross-reference…

Sql Server函数全解二数学函数

阅读目录 1.绝对值函数ABS(x)和返回圆周率的函数PI()2.平方根函数SQRT(x)3.获取随机函数的函数RAND()和RAND(x)4.四舍五入函数ROUND(x,y)5.符号函数SIGN(x)6.获取整数的函数CEILING(x)和FLOOR(x)7.幂运算函数POWER(x,y)、SQUARE(x)、和EXP(x)8.对数的运算LOG(x)和LOG10(x)9.角度…

php框架 wc if_PHP if else语句

无论在何种编程语言中&#xff0c;流程控制都是很重要的内容。由于 PHP 的大部分语法都继承了C语言的特点&#xff0c;因此在流程控制方面&#xff0c;PHP 有着和C语言类似的流程控制。if else 语句是流程控制中根据条件判断执行的一种。该语句执行时先对条件进行判断&#xff…

无线路由与无线AP有什么不同

无线路由与无线AP有什么不同 无线网络从07年开始就进入高速发展的时期&#xff0c;无论是企业还是家庭&#xff0c;在组建网络的时候&#xff0c;大部分都会选择架设无线网络。但是无线网络因为其多种协议、多种功能&#xff0c;产品之间也会有不小的差别&#xff0c;就像很多人…

iOS - 判断用户是否允许推送通知(iOS7/iOS8)

&#xff08;iOS8中用户开启的推送通知类型对应的是UIUserNotificationType&#xff08;下边代码中UIUserNotificationSettings的types属性的类型&#xff09;&#xff0c;iOS7对应的是UIRemoteNotificationType&#xff09; 此处以iOS8的UIUserNotificationType为例&#xff0…

第一课 PE格式

From: http://bbs.pediy.com/showpost.php?p138590&postcount2 要想学脱壳&#xff0c;第一步就得掌握PE格式&#xff0c;PE是Portable Executable File Format&#xff08;可移植的执行体&#xff09;简写&#xff0c;它是目前Windows平台上的主流可执行文件格式。 Micr…

React开发(182):ant design table中 带线框的列表

ReactDOM.render(<Tablecolumns{columns}dataSource{data}borderedtitle{() > Header}footer{() > Footer}/>,mountNode, );

Linux DHCP Server 配置给FIT AP 使用的option

Linux DHCP Server 配置给FIT AP 使用的option 2010-09-17 09:45:52标签&#xff1a;Linux DHCP Server option FIT    [推送到技术圈] 版权声明&#xff1a;原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将…

Claims 认证详解(1)

很多时候&#xff0c;我们进行应用程序之间的交互。比如&#xff0c;一个员工登录了门户网站后&#xff0c;需要访问进销存系统、CRM系统&#xff0c;如果不进行特殊处理&#xff0c;就需要多次输入用户名和密码。用过SharePoint的朋友&#xff0c;可能知道有个“单点登录”的东…