antd+typescript+react实现日期时间不可选定

  • 需求介绍
  • 效果图
  • 代码

需求介绍

  1. 截止时间初始值晚于当前时间2小时,最晚时间晚于截止时间2小时。
  2. 作业提交的截止时间晚于当前时间(当前截止时间前不可选中
  3. 作业提交的最晚时间晚于截止时间,且当截止时间改变后,最晚时间也随之改变

效果图



代码

代码片.

const [submitTime, setSubmitTime] = useState(moment().utc().zone(-8).add(2, 'hours').format(dateFormat).toString() as any);  // 作业提交时间
const [deadline, setDeadline] = useState(moment().utc().zone(-8).add(4, 'hours').format(dateFormat).toString() as any);  // 作业最晚时间
const disabledSubmitDate = (current:any) => {return current && current < moment().startOf('day'
}const disabledEndDate = (current:any) => {return current && current < moment(submitTime).startOf('day');
}// 提交时间改变
const onSubmitTimeChange = (value: any, dateString: any) => {setSubmitTime(dateString);setDeadline(moment(dateString).utc().zone(-8).add(2, 'hours').format(dateFormat).toString() as any);
}// 延迟时间改变
const onDeadlineChange = (value: any, dateString: any) => {setDeadline(dateString);
}// 获取当前时间const currentTime = moment().valueOf();const range = (start, end) => {const result:any = [];for (let i = start; i < end; i++) {result.push(i);}return result;};// 截止时间与当前时间牵制
const disabledSubmitTime:any = (dateTime) => { // 判断所选日期与当前日期是否相等  if (moment(dateTime).isSame(moment(currentTime), "day")) {return {disabledHours: () => range(0, moment(currentTime).hour()),disabledMinutes: () =>moment(dateTime).isSame(moment(currentTime), "hour")? range(0, moment(currentTime).minute()): []};}else return [];
};// 最晚时间与截止时间牵制
const disabledEndTime:any = (dateTime) => {if (moment(dateTime).isSame(moment(submitTime), "day")) {return {disabledHours: () => range(0, moment(submitTime).hour()),disabledMinutes: () =>moment(dateTime).isSame(moment(submitTime), "hour")? range(0, moment(submitTime).minute()): []};}else return [];
}
// 两个 DatePicker
<DatePicker allowClear={false}disabledDate = {disabledSubmitDate}showTimeonChange={onSubmitTimeChange}disabledTime={disabledSubmitTime}/><DatePickeallowClear={false}disabledDate = {disabledEndDate}format={dateFormat}showTimeonChange={onDeadlineChange}disabledTime={disabledEndTime}/>

react使用antd实现日期与时间的不可选定相关推荐

  1. react 使用antd的日期选择框中文失效,只有年为中文, 其他为英文 。

    环境: antd: 版本 4.22.4 react:版本 18.2.0 报错截图: 从 antd 引入的 DatePicker 日期选择框,按照国际化配置,全局的引入中文包,但是生效的 只有年是中文, ...

  2. 团队和做的直观图_直观,可靠的日期和时间处理,终于出现在Java中

    团队和做的直观图 日期和时间的概念是许多应用程序的基础. 诸如生日,租期,活动时间戳记和商店营业时间之类的东西都是基于日期和时间的,但是Java SE没有很好的API来处理它们. 使用Java SE ...

  3. react+dva+antd的骚操作

    文章目录 前言: 第一步: 第二步, 第三步, 第四步, 第五步, 第六步, 第七步, 第八步, 第九步, 第10步, 个人博客 前言: 原谅我直接跳过react的基础,直接就讲react+dva的实 ...

  4. 【转】C/C++中的日期和时间

    头文件 time.h 函数用途 函数名 得到处理器时间 clock 得到时间差 difftime 设置时间 mktime 得到时间 time 得到以ASCII码表示的时间 asctime 得到字符串表 ...

  5. mysql 日期_「5」学习MySQL日期与时间类型发现:要养成注重细节的习惯

    在前面的学习中我们提到过字段类型这个概念,本篇的主题就是来讲一种常用而相对复杂的类型:日期与时间. MySQL中表示日期与时间的数据类型有很多种,但主要的不外乎下面五种: 记住上面表中的"范 ...

  6. python正则取字符串日期_python 正则表达式获取字符串中所有的日期和时间

    提取日期前的处理 1.处理文本数据的日期格式统一化 text = "2015年8月31日,衢州元立金属制品有限公司仓储公司(以下简称元立仓储公司)成品仓库发生一起物体打击事故,造成直接经济损 ...

  7. linux7设置时间,CentOS 7 设置日期和时间

    现代操作系统分为以下两种类型的时钟: 实时时钟(Real-Time Clock,RTC),通常称为硬件时钟(一般是系统主板上的集成电路),它完全独立于操作系统的当前状态,即使在计算机关闭时也能运行. ...

  8. Sql Server函数全解(四)日期和时间函数

    阅读目录 1.获取系统当前日期的函数getDate(); 2.返回UTC日期的函数UTCDATE() 3.获取天数的函数DAY(d) 4.获取月份的函数MONTH(d) 5.获取年份的函数YEAR(d ...

  9. Python学习笔记.OS学习笔记 OS操作系统(operating system)(三) 日期和时间

    日期和时间: 好多库函数: datetime time calendar dateutil ...and so on 日期表示的二义性,很烦人! 1/6/2010 你不知道到底是2010年的1月6日, ...

最新文章

  1. MySQL 报错MySQL server syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT'
  2. 为什么阿里规定需要在事务注解 @Transactional 中指定 rollbackFor?
  3. Android安全加密:非对称加密
  4. 【赫夫曼树详解】赫夫曼树简介及java代码实现-数据结构07
  5. 《JavaScript高级程序设计》读书笔记 ---基本概念小结
  6. Eclipse CDT Hello World工程makefile分析
  7. 10.14-10.20学习总结
  8. 【Win10】【Win2D】实现控件阴影效果
  9. RF接口测试设计时需要考虑的事(robotframework框架)
  10. SoapUI接口测试-基本操作
  11. 雷赛控制卡可以用java写吗_运动控制卡应用编程技巧几招(2)
  12. 计算机做游戏软件视频,电脑上录制游戏视频用什么软件好?专业的游戏录制软件推荐...
  13. 自动化测试框架[Cypress概述]
  14. 【蓝桥杯省赛真题24】Scratch哪吒飞行 少儿编程scratch蓝桥杯省赛真题讲解
  15. 调研目前主要的开源网络爬虫,并且说明各自的特点、局限性以及相互之间的区别
  16. 互联网医疗十大公司排名
  17. 蓝牙耳机哪款好?佩戴舒适的无线蓝牙耳机推荐
  18. 塔望食品品牌策划:中国鳗鱼行业市场现状及发展趋势分析
  19. python 经典ppt_Python讲解ppt
  20. Android图片代码换色,背景换色

热门文章

  1. python条件语句有哪些_Python 条件语句
  2. 【clickhouse】clickhouse UTC 时间带有时区 如何写入
  3. 【ElasticSearch】ElasticSearch在数十亿级别数据下,如何提高查询效率? 性能优化
  4. 【java】java 扩展可回调的Future
  5. 【java】java 关键字: synchronized详解
  6. 【zookeeper】zookeeper 查看ZK连接总数
  7. 【docker】docker Portainer容器可视化管理工具使用文档
  8. 【Java】Java对象转换成Map
  9. 【MySQL】MySQL 执行 PROCEDURE ANALYSE 报错 ERROR 1064 (42000)
  10. 95-235-065-源码-task-SourceStreamTask