element日历插件获取显示的第一天和最后一天

news2024/11/18 16:42:48

和重置日期内容显示

需求是要传入当前显示的第一天和最后一天来获取范围,再判断某个日期是否有内容标记

已知星期排版是固定的,第一天是星期天,最后一天是星期六。通过当月1号和最后一天再往前推算需要展示上个月几天,和下个月几天。

// 获取日历显示时间范围
const getRange = (date) => {
	// 日历第一天
	let firstDay = '';
	// 日历最后一天
	let lastDay = '';
	// 今天
	const today = date ? date : new Date()
	// 上月
	const m = today.getMonth()
	// 本月
	const cm = m + 1
	// 下月
	const lm = m + 2 > 12 ? 1 : m + 2
	// 要显示的本月
	const currentMonth = cm < 10 ? '0' + cm : cm
	// 要显示的本本年
	const currentYear = today.getFullYear()
	// 要显示的上个月的年份,m = 0 则当前1月,上月则是去年12月
	const prevYear = m == 0 ? currentYear - 1 : currentYear
	const prevMonth = m == 0 ? 12 : m < 10 ? '0' + m : m
	// 上个月天数
	const pmd = new Date(prevYear, m, 0).getDate()
	// 下个月的年份,当前12月,则需要加一年
	const lastYear = cm + 1 > 12 ? currentYear + 1 : currentYear
	const lastMonth = lm < 10 ? '0' + lm : lm
	// 1号是周几
	const firstWeek = new Date(today.setDate(1)).getDay()
	// 如果是周日,则不需要显示上个月
	if (firstWeek == 0) {
		firstDay = `${currentYear}-${currentMonth}-01`
	}
	// 其他周几,对应用上个月的天数往前推算
	else {
		firstDay = `${prevYear}-${prevMonth}-${pmd - (firstWeek - 1)}`
	}
	// 这个月天数
	const currentMonthDate = new Date(currentYear, cm, 0).getDate()
	// 最后一天是周几
	const lastWeek = new Date(today.setDate(currentMonthDate)).getDay()
	// 周六显示当月最后一天
	if (lastWeek == 6) {
		lastDay = `${currentYear}-${currentMonth}-${currentMonthDate}`
	}
	// 其他周几,对应往后推算
	else {
		const day = ['06', '05', '04', '03', '02', '01']
		lastDay = `${lastYear}-${lastMonth}-${day[lastWeek]}`
	}
	console.log('第一天', firstDay)
	console.log('最后一天', lastDay)
}

这个日历插件右上角的按钮上个月下个月事件,切换后默认是那月1号,传入这个时间就可以重新获得切换后的月份的时间范围,用v-model绑定切换后的数据

<el-calendar v-model="calendar">
	<template #date-cell="{ data }">
		<el-popover v-if="list[data.day]" placement="top-start" :width="200" trigger="hover" :content="list[data.day].workCalendar.content">
			<template #reference>
				<div class="date-cont" @click="handleOpen(data), list[data.day]">
					{{ data.day.split('-')[2] }}
				    <el-icon>
						<Star />
				    </el-icon>
				</div>
			</template>
		</el-popover>
		<p v-else class="date-cont" @click="handleOpen(data)">
			{{ data.day.split('-')[2] }}
		</p>
	</template>
</el-calendar>

watch监听变动来做事件

// 获取当前点击上下月按钮后的变化
watch(calendar, (n, o) => {
	if (n.getFullYear() !== o.getFullYear() || n.getMonth() !== o.getMonth()) {
		getRange(n)
	}
});

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

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

相关文章

Vue3 + TS 自动检测线上环境 —— 版本热更新提醒

&#x1f414; 前期回顾 编写 loading、加密解密 发布NPM依赖包&#xff0c;并实施落地使用_彩色之外的博客-CSDN博客 目录 &#x1f30d; 问题产生 &#x1f916; 性能效率 &#x1fa82; 新建 autoUpdate.ts &#x1f38b; 在App.vue使用 &#x1f30d; 问题产生 当用…

秋招搞个保底offer再说,我换赛道了。

作者&#xff1a;阿秀 InterviewGuide大厂面试真题网站&#xff1a;https://top.interviewguide.cn 这是阿秀的第「312」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 转测开这个话题已经聊过很多次了&#xff0c;以前也分享过不少测开相关的面经&#xff1a; 后端太卷&#x…

Mac电脑视频处理工具 Topaz Video AI for mac

Topaz Video AI是一款强大而易用的视频处理软件&#xff0c;通过人工智能技术提供高质量的视频增强和编辑功能。它可以帮助用户改善视频的质量、修复缺陷、优化图像&#xff0c;并提供丰富的编辑选项&#xff0c;以满足个性化的视频处理需求。无论是专业摄影师、视频编辑人员&a…

vue+Vant,关闭Popup弹框,遮罩层并没有消失

遇到问题&#xff1a; 点击Popup弹框关闭按钮&#xff0c;弹框的遮罩不能正常关闭&#xff0c;如下图。经研究&#xff0c;排除了popup属性问题&#xff0c;最后只能删除代码排除法。 <!--弹框&#xff1a;选号--><van-popupv-model"showNumber"closeablero…

JS 内存泄漏与垃圾回收机制

一、什么是内存泄漏? 内存泄漏&#xff08;Memory Leak&#xff09;是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放&#xff0c;造成系统内存的浪费&#xff0c;导致程序运行速度减慢甚至系统崩溃等严重后果。通俗点就是指由于疏忽或者错误造成程序未能释放已…

指定名校牛导|肿瘤科医生赴哈佛大学麻省总医院访学进修

世界排名第一的哈佛大学&#xff0c;美国排名第一的研究型医院-麻省总医院&#xff0c;AIMBE fellow头衔的导师&#xff0c;这些条件均符合T医生要求的名校牛导标准。 T医生背景&#xff1a; 申请类型&#xff1a; 单位公派访问学者 工作背景&#xff1a; 三甲医院医生 教育…

在openwrt dnsmasq DHCP中为客户端分配不同的网关和DNS | 旁路由 禁止上网

环境&#xff1a;openwrt dnsmasq PS4/Switch 问题&#xff1a;为路由器下的设备分配不同的网关和DNS&#xff0c;禁止局域网设备上网 解决办法&#xff1a;修改dnsmasq配置文件 背景&#xff1a;Openwrt 的DHCP服务是使用dnsmasq实现的&#xff0c;他可以给内网的客户端设备…

如何减少爬虫产生的网络负载:爬取间隔和缓存控制策略

在进行Python爬虫开发时&#xff0c;我们需要注意控制爬取频率&#xff0c;以减少对目标网站的网络负载。本文将为您分享两种关键策略&#xff1a;爬取间隔和缓存控制。通过合理设置爬取间隔和使用缓存&#xff0c;您可以有效减少网络负载&#xff0c;同时保证数据的实时性和准…

Spring5应用之AOP动态代理开发

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 前言何为动态代理…

使用Packet Tracer了解网络模型及Lab3 - 2

显示TCP/IP协议套件的元素 这些额外的条目在 TCP/IP 套件中扮演着各种角色。如果列出了地址解析协议 &#xff08;ARP&#xff09;&#xff0c;它将搜索 MAC 地址。DNS 负责将名称&#xff08;例如 www.osi.local&#xff09;转换为 IP 地址。其他 TCP 事件负责连接、商定通信…

DETR纯代码分享(九)transformer.py

一、定义DETR Transformer用于DETR模型 """ DETR Transformer class.Copy-paste from torch.nn.Transformer with modifications:* positional encodings are passed in MHattention* extra LN at the end of encoder is removed* decoder returns a stack of …

趣解设计模式之《当代毕加索小王》

〇、小故事 小王最近对画油画非常的感兴趣&#xff0c;尤其是当他参观完毕加索画展之后&#xff0c;更觉得自己有画画天赋了&#xff0c;“这画我自己也能画啊&#xff01;这以后一幅画随随便便买它2、3个亿&#xff0c;这不发财了&#xff01;”于是&#xff0c;他就开始着手…

Java——》IO

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

12KM02E-V0002 3EGM030300R0002 模块化和加固的边缘计算加速

12KM02E-V0002 3EGM030300R0002 模块化和加固的边缘计算加速 随着边缘人工智能解决方案的兴起&#xff0c;对实时洞察和自主决策的需求显著增长。这也带来了对变革性技术的高度需求&#xff0c;这些技术可以在坚固的边缘支持和提供最佳性能。为了应对技术革命&#xff0c;Prem…

C#开发 降.NET版本问题解决笔记

C#开发 降.NET版本问题记录 以下都是我在使用.NET4.7.2版本开发控件完成后又将控件代码降位使用.NET4.5时所遇到的问题&#xff0c;和解决方式 Struct构造函数&#xff1a;“必须将字段完全分配&#xff0c;然后控制权才能返回给调用者。” 原始的代码和错误如下&#xff1a…

PMP证书的价值如何?

2022年开始&#xff0c;PMP考试启用了新考纲&#xff0c;不光考试内容进行了大刀阔斧的改革&#xff0c;出题方式也进行了更新。除原有的PMBOK6和PMBOK7主考教材外&#xff0c;还增加了一本《敏捷实践指南》。 别小看新加的这本书&#xff0c;它虽然与PMBOK代表的预测法属于完…

史上最强,从0到1接口自动化测试落地实施,资深老鸟整理...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 为什么要做接口测…

Python 编程基础 | 第一章-预备知识 | 1.3、运行方式

一、Python运行代码 可以使用三种方式运行Python&#xff0c;如下&#xff1a; 1、交互式 通过命令行窗口进入 Python 并开始在交互式解释器中开始编写 Python 代码 2、命令行脚本 可以把代码放到文件中&#xff0c;通过python 文件名.py命令执行代码&#xff0c;如下&#xff…

智慧公厕云管理平台:筑牢云上“城市公共厕所一张网”

在现代城市中&#xff0c;公共厕所是人们日常生活中不可或缺的一部分。然而&#xff0c;过去的公共厕所管理方式往往效率低下&#xff0c;维护困难&#xff0c;给市民带来了不便。为了解决这一问题&#xff0c;智慧公厕应运而生&#xff0c;赋予传统公共厕所智慧化的管理效能。…

论文精读:Feature Pyramid Networks for Object Detection

文章目录 1. 摘要1.1 背景1.2 提出新方法1.3 贡献 2. 引言2.1 提出问题2.2 叙述Feature pyramid2.3 叙述深度卷积网络2.4 Feature pyramid的局限2.5 使用deep ConvNet计算多尺度特征的方式2.6 提出我们的方法2.7 贡献 3. 相关工作3.1 手工工程特征和早期神经网络3.2 深度卷积目…