Ant Design、Element组件:时间日期选择器限制选择范围的几种场景及区别

news2025/1/12 12:20:43

目录

第一章 Ant Design时间日期选择器限制选择范围的几种场景

需求一:选择今天之前的日期(分为包括今天以及不包括今天)

需求二:设置选择今天之后的日期(分为今天以及今天之后)

需求三:设置选择30/60/90之内到今天的日期

总结

第二章 Element时间日期选择器限制选择范围的几种场景

注意

需求一:选择今天之前的日期(分为包括今天以及不包括今天)

需求二:设置选择今天之后的日期(分为今天以及今天之后)

需求三:设置选择30/60/90之内到今天的日期


需求:最近接到这么一个需求,将使用的Ant Design时间日期选择器组件的时间只选当天之前的,当天之后禁止选中。于是小编基于该需求并用自己的方法实现总结了该组件一些常用的方法。

第一章 Ant Design时间日期选择器限制选择范围的几种场景

  • 代码如下
<a-date-picker
    style="width: 400px"
    @change="onDataChange"
    :disabled-date="disabledDate"
    placeholder="请选择日期"/>


export default {
    data () {
        return {
            deathTime: ''
        }
    },
    components: {
    },
    methods: {
        // 日期变化时调用
        onDataChange (date, dateString) {
            console.log('data', date, dateString)
            this.deathTime = dateString
        },
        // 禁止日期选择的函数
        disabledDate (value) {
            console.log(value)
            return new Date(value).getTime() > Date.now()
        }
    }
}
  • 查看一下我们这里方法详细说明

 

需求一:选择今天之前的日期(分为包括今天以及不包括今天)

  • 1.包括今天 
 // 禁止日期选择的函数(替代前面该函数即可)
disabledDate (value) {
    // value:为当前时间
    console.log(value)
    // 意思是:将返回的value时间戳大于当前时间的时间戳如果为true,禁止选择
    return new Date(value).getTime() > Date.now()
}

(这里小编输出了value,可以看到有很多个时间,小编的猜测是插件内部某个方法返回的很多个时间,然后与我们写的当前时间比较,从而确定哪些日期禁止选择,当比较返回true时,插件内部某个方法能知道从哪里开始禁止日期选择了)--> 可以无视,它不影响我们开发,如果有小伙伴知道,评论区欢迎留言!

效果:今天以及今天之前可选

 

  • 2.不包括今天 
disabledDate (value) {
    console.log('value', value)
    return new Date(value).getTime() > Date.now() - 8.64e7
}
/*
    注意一下这里:8.64e7是科学计数法的表示形式,时间戳ms的形式
    8.64e7 = 8.64 * 10^7 =  24 * 60 * 60 * 1000 (ms)
*/

效果:今天之前可选

需求二:设置选择今天之后的日期(分为今天以及今天之后)

  • 1.包括今天
disabledDate (value) {
    return new Date(value).getTime() < Date.now() - 8.64e7
}

  • 2.不包括今天
disabledDate (value) {
    console.log('value', value)
    return new Date(value).getTime() < Date.now()
}

需求三:设置选择30/60/90之内到今天的日期

disabledDate (value) {
    const curDate = new Date().getTime()
    // 这里设置天数
    const numMonth = 3 * 30 * 24 * 3600 * 1000
    const threeMonths = curDate - numMonth
    return new Date(value).getTime() > Date.now() || new Date(value).getTime() < threeMonths
}

总结

  • 通过以上三个需求相信我们对日期选择器如何控制选择范围已经有了一定的了解,如果还有什么其他的特殊的要求,我们也能实现的了

第二章 Element时间日期选择器限制选择范围的几种场景

注意

Element与Ant Design组件的区别,下图

 在Elemen组件中,禁止日期选中的函数是在pickeOption下的,不是直接是个配置项,代码如下:

<el-date-picker
    v-model="time"
    type="date"
    :picker-options="pickerOptions"
    placeholder="选择日期">
</el-date-picker>

 在data配置项下添加pickerOptions对象,里面设置禁止日期范围:

data () {
    return {
        pickerOptions: {
            disabledDate (value) {
                return new Date(value).getTime() > Date.now()
            }
        }
    }
},

好了,至此其他内容就与Ant Design一样了!

需求一:选择今天之前的日期(分为包括今天以及不包括今天)

data () {
    return {
        pickerOptions: {
            disabledDate (value) {
                return new Date(value).getTime() > Date.now()
                // return new Date(value).getTime() > Date.now() - 8.64e7
            }
        }
    }
},

 

需求二:设置选择今天之后的日期(分为今天以及今天之后)

data () {
    return {
        pickerOptions: {
            disabledDate (value) {
                return new Date(value).getTime() < Date.now() - 8.64e7
                // return new Date(value).getTime() < Date.now()
            }
        }
    }
},

需求三:设置选择30/60/90之内到今天的日期

data () {
    return {
        pickerOptions: {
            disabledDate (value) {
                const curDate = new Date().getTime()
                // 这里设置天数
                const numMonth = 3 * 30 * 24 * 3600 * 1000
                const threeMonths = curDate - numMonth
                return new Date(endValue).getTime() > Date.now() || new Date(endValue).getTime() < threeMonths
            }
        }
    }
},

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

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

相关文章

Temu发货数据:了解拼多多旗下跨境电商平台的物流方式和发货量

作为拼多多旗下的跨境电商平台&#xff0c;Temu通过全托管模式将卖家的货品把控权集中在平台买手身上。本文将为您揭示Temu的发货方式以及每天的出口包裹量&#xff0c;帮助您更好地了解这一平台的物流运作。 先给大家推荐一款拼多多/temu运营工具——多多情报通 多多情报通是拼…

数学建模-基于机器学习的家政行业整体素质提升因素分析

基于机器学习的家政行业整体素质提升因素分析 整体求解过程概述(摘要) 家政服务业即为家庭提供多种类服务的专门行业&#xff0c;在第三产业中占有重要地位。但近年来&#xff0c;由于人工智能家居产业的发展与客户对家政从业者的要求水平不断提高&#xff0c;家政行业仍面对较…

【TiDB理论知识04】TiKV-分布式事务与MVCC

分布式事务 下面一个事务 里面有两个更新,分别将id1的Tom改为Jack,将id2的zhangsan 改为 lisi。在MySQL中这个事务很普通&#xff0c;但是在分布式数据库TiDB 中的会遇到什么问题呢&#xff1f; begin; (1,Tom) --> (1,Jack) (2,zhangsan) --> (2,lisi) commit; 比如(…

[头歌系统数据库实验] 实验3 MySQL的DDL语言

目录 第1关&#xff1a;将P表中的所有红色零件的重量增加6 第2关&#xff1a;把P表中全部红色零件的颜色改成蓝色 第3关&#xff1a;将SPJ表中由S5供给J4的零件P6改为由S3供应 第4关&#xff1a;将SPJ表中所有天津供应商的QTY属性值减少11&#xff08;用子查询方式&#x…

创业和打工该如何选择

创业和打工应该根据自己的人生目标和经济条件来具体选择&#xff0c;创业和打工是两条不同路&#xff0c;各有优劣不能一概而论。 上班打工的好处是相对稳定和安全。你有固定的工作时间和薪水&#xff0c;不需要承担太多的风险和责任。 而做生意创业有更大的收入潜力。如果你的…

球机实现飞机追踪

目录 1. 背景2. 实现步骤2.1 飞机识别2.2 计算目标与球机中心的偏离角度2.2.1 获取球机视场角2.2.2 计算偏离角度 2.3 计算角速度2.4 将角速度映射到球机转速挡位 1. 背景 球机本身带有一些跟踪算法&#xff0c;比如&#xff1a;人员跟踪、车辆跟踪&#xff0c;比较有限。如果…

linux无法打开M4a格式音频的解决方法

linux是开源系统&#xff0c;之所以打不开&#xff0c;是因为部分linux系统为了避免版权问题&#xff0c;没有m4a的解码插件。所以&#xff0c;解决的办法是安装如下两个非常小的转换器&#xff0c;我们一般用不到转换器的功能&#xff0c;而是反向应用&#xff0c;通过两个几十…

TinyMPC - CMU (卡耐基梅隆大学)开源的机器人 MPC 控制器

系列文章目录 CasADi - 最优控制开源 Python/MATLAB 库 文章目录 系列文章目录前言一、机器人硬件对比1.1 Teensy 上的微控制器基准测试1.2 机器人硬件1.3 BibTeX 二、求解器三、功能&#xff08;预期&#xff09;3.1 高效3.2 鲁棒3.3 可嵌入式3.4 最小依赖性3.5 高效热启动3.…

第四代可燃气体监测仪监测场景有哪些?

随着城市化进程的加速&#xff0c;燃气作为一种重要的能源在每个城市都得到了广泛的应用。然而燃气泄漏所引发的安全问题也日益增加&#xff0c;为了保障燃气安全并防止泄漏事故的发生&#xff0c;可燃气体监测仪在其中发挥着重要的作用。可燃气体监测仪适用于甲烷气体浓度监测…

从零开始训练一个ChatGPT大模型(低资源,1B3)

macrogpt-prertrain 大模型全量预训练(1b3), 多卡deepspeed/单卡adafactor 源码地址&#xff1a;https://github.com/yongzhuo/MacroGPT-Pretrain.git 踩坑 1. 数据类型fp16不太行, 很容易就Nan了, 最好是fp32, tf32, 2. 单卡如果显存不够, 可以用优化器adafactor, 3. 如果…

基于Java SSM框架实现网络视频播放器管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现网络视频播放器管理系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所…

【泛微ecology】将多个字段的数据合并到一个字段

doFieldSQL("select concat(concat(sqr,,),sy) as c from formtable_main_2 where requestid $requestid$ ")

CC++内存管理方式

文章目录 1. C/C内存分布总结 C语言中动态内存管理C内存管理方式new/delete操作内置类型new和delete操作自定义类型c推荐是用new和deleteoperator new与operator delete函数 定位new 1. C/C内存分布 我们先来看下面的一段代码和相关问题 int globalVar 1; static int static…

UE4/UE5 材质实现带框环形进度条

UE4/UE5 材质实现带框环形进度条 此处使用版本&#xff1a;UE4.27 原理&#xff1a;大圆减小圆可以得到圆环&#xff0c;大圆环减小圆环&#xff0c;可以得到圆环外围线框 实现效果&#xff1a; 实现&#xff08;为了给大家放进一张面前能看的图&#xff0c;我费劲了心思&…

使用 GPTs 手捏一个代码评分器(两小时速成)

嗨&#xff01;大家好久不见~ ChatGPT 支持 GPTs 也有段时间了&#xff0c;看着应用商店里大神们捏出来的 GPTs , 有些确实很有意思&#xff0c;比如&#xff1a;AI 杠精、模拟面试官、海龟汤… 团子也跃跃欲试&#xff0c;想捏一个 好玩且对大家有用 的 GPTs 出来。 考虑到关注…

如何科学制定营销战略规划?公开课(一)销售罗盘销冠100栏目

上周&#xff0c;销售罗盘&销冠100栏目&#xff0c;重磅推出2场公开课。点击链接查看回放&#xff1a;《如何科学制定营销战略规划&#xff1f;》《如何搭建客户经营体系&#xff1f;》 在第一期公开课《如何科学制定营销战略规划&#xff1f;》中&#xff0c;销售罗盘创始…

Leetcode刷题详解——单词拆分

1. 题目链接&#xff1a;139. 单词拆分 2. 题目描述&#xff1a; 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 **注意&#xff1a;**不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。…

TypeScript枚举类型详情、类型断言

一. 概念 TypeScript中的枚举是一种数据类型&#xff0c;它是一组具有预定义名称的有限值的集合。枚举类型可以使代码更加可读、可维护和易于理解。 类似对象&#xff0c;枚举是将一组无序但极度相关数组集合在一起声明存储。 二. 枚举特性 1. 内部进行了双向赋值 enum Numb…

Socket和Http通信原理

Socket是对TCP/IP协议的封装&#xff0c;Socket本身并不是协议&#xff0c;而是一个调用接口&#xff08;API&#xff09;&#xff0c;通过Socket&#xff0c;我们才能使用TCP/IP协议,主要利用三元组【ip地址&#xff0c;协议&#xff0c;端口】。 Http协议即超文本传输协议&a…

VIVADO-FFT IP核学习记录

根据用户手册使用IP核 ① 找到user guide / product guide 并打开 ② 找到Customizing and Generating the Core(不同手册可能题目不一样)&#xff0c;查看IP核的创建过程中各个参数的意义和设置方法。 ③ 找到port description &#xff0c;查看接口注释 根据网络教程使用…