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

别再为日期限制发愁!手把手教你用moment玩转antd RangePicker的disabledDate 本文详细介绍了如何利用moment.js和Ant Design的RangePicker组件实现精细化日期控制策略。通过disabledDate属性结合moment.js的强大功能,开发者可以轻松限制特定日期范围、排除节假日或周末,满足电商促销、项目排期等复杂业务需求。文章包含丰富的代码示例和最佳实践,帮助开发者高效解决日期选择限制问题。 阅读详情

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}
	showTime
	onChange={onSubmitTimeChange}
	disabledTime={disabledSubmitTime}
	/>
   
<DatePicke
    allowClear={false}
    disabledDate = {disabledEndDate}
    format={dateFormat}
    showTime
    onChange={onDeadlineChange}
    disabledTime={disabledEndTime}
    />
React + TypeScript 数据可视化实战:从零构建交互式贡献对比器 数据可视化是现代Web开发中连接数据与洞察的关键技术,其核心原理在于将抽象、复杂的数据通过图形、图表等视觉元素进行编码,从而帮助用户更直观地理解信息、发现规律。在工程实践中,前端开发者常借助React、Vue等框架结合专业的图表库(如Recharts、ECharts)来实现这一过程,其技术价值在于显著提升数据的可读性和交互性,广泛应用于商业智能、实时监控、社交分析和内容展示等场景。本文以构建一个交互式“贡献对比器”为例,深入探讨如何运用React 18、TypeScript和Zustand等现代前端技术栈, 阅读详情

相关推荐

YOLOv8缺陷检测可视化界面实战:PyQt5布局设计与代码实现

本文详细介绍了如何利用PyQt5为YOLOv8缺陷检测模型构建一个专业、易用的可视化界面。通过实战讲解PyQt5的布局管理器设计、信号槽机制与YOLOv8核心的集成,帮助开发者快速将AI模型部署为直观的桌面应用,提升工业质检等场景的落地效率。

redis7keeper的博客 755

Antd RangePicker 时间日期选择器 禁用当前时间往后的日期及现在时间往后的时分秒禁选

RangePicker 组件 <RangePicker onChange={onSearch} placeholder={[ formatMessage({ id: 'page.Business.StartTime' }), formatMessage({ id: 'page.Business.EndTime' }), ]} format="YYYY-MM-DD HH:mm" disabledDate={disabledDate} disabledTime=.

书包的博客 6493

3D识别建模 — 基于ReconstructMe和EAGLE EYES SCANNER的实现

3D实体识别建模,作为3D打印反向工程的一个重要环节,今天就让我们利用ReconstructMe和EAGLE EYES SCANNER来了解一下。 第一步、软件和硬件准备就绪 ReconstructMe下载并安装 http://reconstructme.net/?wpdmdl=160 EAGLE EYES SCANNER直接将相应USB插入电脑接口即OK,之后在    中点击搜索“设备管理...

qq_40013290的博客 881

React中使用antd RangePicker限制日期选择

React中使用antd RangePicker限制日期选择。选择范围为7天且不能选择今天及之后的日期。

z止于至善的博客 2566

手把手教你逆向抖店滑块验证码:从抓包到生成captchaBody的完整流程(附Python复现代码)

本文详细解析了抖店滑块验证码的逆向过程,从抓包分析到参数生成,最终用Python完整复现验证流程。涵盖关键接口分析、指纹参数生成、轨迹加密逻辑及核心加密算法实现,帮助开发者突破抖店的多重安全机制,实现高效的人机验证绕过。

weixin_30681121的博客 424

逆向Shopee签名机制:从参数分析到稳定采集方案

本文深入解析了Shopee签名机制的逆向过程,从参数分析到稳定采集方案的实现。通过抓包定位关键参数`sap-ri`和`x-sap-sec`,还原了签名生成算法,并提供了Python实现代码。文章还分享了反反爬策略、性能优化技巧及长期维护建议,帮助开发者构建稳定的Shopee数据采集方案。

weixin_27722377的博客 672

antd react TimePicker 时、分、秒限制

const applyBeginHour = '02:10:01'; const applyEndHour = '22:10:10'; 限制小时 const disBeginHouse = () => { const hours = []; if (applyEndHour) { const timeArr = applyEndHour.split(':')...

hyupeng1006的博客 3096

Monocle2在R 4.3环境下的终极避坑指南:从安装到可视化全流程解析

本文提供了在R 4.3环境下安装和运行Monocle2的完整解决方案,重点解决了依赖包兼容性、源码修改及BEAM分析报错等关键问题。文章详细解析了从环境准备、依赖包处理、源码安装验证到从Seurat对象转换、拟时轨迹构建、高级可视化及性能优化的全流程,旨在帮助用户顺利完成单细胞拟时分析。

weixin_29206669的博客 1353

react + antdesign 日期选择框---实现当前时间之前不可选(包括时分)

antdesign时间选择框,限制时间

qq_56363153的博客 977

有了网段为什么还要有VLAN???

近几日,在学习VLAN及VXLAN方面的知识,对于产生原因做一个总结及详解。 VLAN(Virtual Local Area Network,虚拟局域网),其主要用途是用来缩小广播域,即进行隔离。 先对广播域的一个概念做如下描绘:如下图,主机A、B、C、D均连接在交换机SW1上,其中A、C同网段为192.168.252网段,而B和D同网段,为192.168.250网段。 现,假如A与C第...

dandandean_96的博客 6885

8、对比 LightGBM、XGBoost 和深度学习

本文对比了LightGBM、XGBoost和深度学习模型(特别是TabTransformer)在处理表格数据时的性能差异。从模型复杂度、数据准备、训练时间、准确性和适用场景等方面进行分析,重点探讨了三者在人口普查收入预测任务中的表现。文章详细介绍了XGBoost与LightGBM的核心特性与区别,深入讲解了TabTransformer的架构与实现,并涵盖了分类特征编码、缺失值处理和类别不平衡等关键数据预处理技术,为选择合适的表格数据建模方法提供了实践指导。

julia4scientist的博客 120

ant-design-vue中DatePicker 日期选择框(禁用部分时间和显示设置)

ant-design-vue中DatePicker 日期选择框(禁用部分时间和显示设置)

pipizhou16的博客 8716

QT+Opencv实现视频流播放

1.流程 首先通过opencv打开视频流,获取到数据帧,然后将数据帧转换为QT可识别的图像,显示到QT界面上。 2.opencv解码线程源码 //DecodeOpencv.h #pragma once #include <QThread> #include <QObject> #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/img..

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 6459

React+Ant design日期组件DatePicker设置结束时间不能小于开始时间

import React, { Component } from 'react' import { DatePicker, Button } from 'antd'; import 'moment/locale/zh-cn'; import locale from 'antd/es/date-picker/locale/zh_CN'; export default class TimelineCom extends Component { state = { startValue:.

duansamve的博客 2285

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

antd中时间组件获取选中日期所在周、月的第一天和最后一天

DatePicker、RangePicker、momengt获取指定时间的周、月的第一天和最后一天

放羊的小孩 1233

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

antd组件库的tab组件,点击tab选项时,让上面的日期选择清空

antd组件库的tab组件,点击tab选项时,让上面的日期选择清空

qq_52845451的博客 881

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

antDesign RangePicker限制日期可选范围

上代码: import React from 'react'; import ReactDOM from 'react-dom'; import 'antd/dist/antd.css'; import './index.css'; import moment from 'moment'; import { DatePicker } from 'antd'; const { RangePi...

qq_36742720的博客 8619

moment.js的使用

antd moment.js react

Davidzw99的博客 401

Ant Design Vue 日期组件的时间限制

我介绍的日期组件是封装成单独的一个日期组件 是由用下面这个日期组件拼接组成. 而不是一个完整的开始时间和结束时间组件 以下: 开始时间不能选择当天日期; 结束时间不能小于开始时间; 上代码: disabled-date是禁用属性 j-date就是封装的日期子组件 : 父组件: ​ <a-form-model-item label="活动开始时间"> <j-date ...

m0_58293192的博客 5133

ant design vue中日期选择框混合时间选择器的用法

首先时间格式化用到moment方法,需要在页面中引入moment组件 importmomentfrom'moment' 结构代码: <a-date-picker style="width:100%" :getCalendarContainer="(triggerNode) => triggerNode...

Femi的博客欢迎大家 1万+

antd组件禁用时分秒和年月日

antd组件禁用时分秒和年月日

weixin_44457030的博客 2289

antd中的disabledDate不可选择时间的处理

handleData(time){ if(!time){ return false }else{ // 大于当前日期不能选 time > moment() // 小于当前日期不能选 time < moment().subtract(1, “days”) // 只能选前7后7 time < moment().subtract(7, “days”) || time > mome...

wgod 2万+

React + Ant Design V4.0 DatePicker 不可选择的日期和时间设置

需求:选择日期时,只能选择当天及之后的日期,之前的日期不可选;选择时间时,只能选择当日当前及之后的时间点; 例子:如果当前时间时 2021年01月10日 08:08:08,那么 DatePicker 组件可选的日期和时间范围只能是 2021年01月10日 08:08:08 之后的日期和时间,如:2021年01月10日 08:09:00 解决方案: 因为使用的是 Ant Design V4.0 版本组件库,该 DatePicker 组件有两个属性:disabledDate和 disableTime...

问卿何如的博客 2226

antd日期动态禁用时分秒, react

其实antd官方已经给出了一个禁用的例子,我们找到这个例子 禁用时分秒的话我们需要用到disabledTiem这个api 这里先看下我写的demo 比如我们的需求是: 选择的时间早于特定时间要禁用 range = (start, end) => { const result = [] for (let i = start; i < end; i++) { result.push(i) } return result } const disableTime = m

风闲的博客 2093

react开始时间不能选择当前日期之前的日期

类组件。。 图在这 代码: // 根据选择题遍历选项答案 import React from 'react' import moment from 'moment'; import { DatePicker, Space } from 'antd'; const { RangePicker } = DatePicker; class Three extends React.Component { constructor(props) { super(props);

欢迎来叨叨~ 828

react结合antd日期组件使用方法(结束时间不能小于开始时间)

需求:实现开始和结束时间的选择,并且选择开始时间之后,结束时间不能小于开始时间,或者说先选择了结束时间,开始时间选择的时候只能小于结束时间,不能选择的日期禁用 import { Button, DatePicker } from 'antd' class DatePickers extends React.Component { constructor() { super(...

雷佳佳的博客 5669
上一篇: Vue生命周期通俗理解
下一篇: React多行文本溢出显示省略号...和箭头(纯CSS)
唐老鸭.
博客等级 码龄7年 36粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值