Vue3 获取农历(阴历)日期,并封装日历展示组件

本文主要是介绍Vue3 获取农历(阴历)日期,并封装日历展示组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:哈喽,大家好,我是码喽的自我修养!今天给大家分享vue3项目中使用 chinese-lunar-calendar 插件获取农历(阴历)日期,并封装了日历展示组件!提供了具体的代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到带大家,欢迎收藏+关注 哦 💕 

🌈🌈文章目录

一、安装 chinese-lunar-calendar 插件

二、封装获取阴历函数

三、调用方法

四、封装日历展示小卡片 

效果如下👇

完整代码如下👇

一、安装 chinese-lunar-calendar 插件

npm install --save chinese-lunar-calendar

二、封装获取阴历函数

import {getLunar} from 'chinese-lunar-calendar'export function lunarDate(pDate){const year = pDate.getFullYear()const month = pDate.getMonth() +1const day = pDate.getDate()const result = getLunar(year,month,day)return result.dateStr
}

打印出来的 result 结果如下:

三、调用方法

const date = new Date()
const result = lunarDate(date)//十月廿十

如果不想封装函数,也可以直接在当前组件的onMounted生命周期中调用,就是代码的可复用性差了些,代码如下👇

<template><div><p>{{ lunarDay }}</p></div>
</template><script setup>
import { onMounted, ref } from "vue";
import { getLunar } from "chinese-lunar-calendar";const lunarDay = ref(""); // 农历日期onMounted(() => {// 初始化日历const date = new Date();const curYear = date.getFullYear(); // 当前年份const curMonth = date.getMonth() + 1; // 当前月份const curDay = date.getDate(); // 当前日期const lunarDate = getLunar(curYear, curMonth, curDay);lunarDay.value = lunarDate.dateStr;
});
</script>

四、封装日历展示小卡片 

上面代码即可实现获取农历(阴历)日期的功能,在此基础上加上样式和其他日期属性,就封装成了一个完整的日历展示组件

效果如下👇

完整代码如下👇
<template><div class="fix-box"><!-- 日历卡片 页面 --><div class="calendar-card"><div class="cal-top">{{ curYear }} 年 {{ curMonth }} 月</div><div class="cal-center">{{ curDay }}</div><div class="cal-footer"><p class="cal-footer-d">第 {{ dayOfYear }} 天 第 {{ weekOfYear }} 周</p><p class="cal-footer-w">{{ lunarDay }} {{ curWeek }}</p></div></div><p class="label d-elip">日历</p></div>
</template>
<script setup>
import { onMounted, ref } from "vue";
import { getLunar } from "chinese-lunar-calendar";const curYear = ref(""); // 当前年份
const curMonth = ref(""); // 当前月份
const curDay = ref(""); // 当前日期
const curWeek = ref(""); // 当前周
const lunarDay = ref(""); // 农历日期
const dayOfYear = ref(""); // 当前日期是一年中的第几天
const weekOfYear = ref(""); // 当前日期是一年的第几周onMounted(() => {// 初始化日历const date = new Date();curYear.value = date.getFullYear();curMonth.value = date.getMonth() + 1;curDay.value = date.getDate();const weekday = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];const day = date.getDay();curWeek.value = weekday[day];const lunarDate = getLunar(curYear.value, curMonth.value, curDay.value);lunarDay.value = lunarDate.dateStr;// 获取当前时间是当年的第几天dayOfYear.value = Math.floor((date - new Date(curYear.value, 0, 0)) / 86400000);// 获取当前时间是当年的第几周const start = new Date(curYear.value, 0, 1);weekOfYear.value = Math.ceil((((date - start) / 86400000) + start.getDay() + 1) / 7);
});
</script><style scoped lang="less">
.fix-box {position: relative;.calendar-card {//   width: 100%;//   height: 100%;width: 186px;height: 186px;font-family: PingFang SC, -apple-system, BlinkMacSystemFont, Helvetica Neue,Helvetica, sans-serif;background: #fff;border-radius: 15px;overflow: hidden;transition: transform 0.3s ease;&:hover {transform: translateY(-3px);}.cal-top {font-size: 16px;color: #fff;line-height: 46px;height: 25%;background: rgba(239, 102, 99, 0.8);}.cal-center {font-size: 46px;font-weight: 600;line-height: 78px;height: 42%;}.cal-footer {height: 33%;.cal-footer-d {font-size: 14px;color: #999;}.cal-footer-w {font-size: 16px;}}}.label {position: absolute;bottom: -28px;left: 0;width: 100%;font-size: 14px;color: #fff;}.d-elip {text-overflow: ellipsis;overflow: hidden;white-space: nowrap;}
}
</style>

该组件可以复用到vue3项目的首页、可视化大屏等等需要展示日期的地方,让页面内容页面更加丰富!

好了,本文就到这里吧,点个关注 再走嘛~

🚀 个人简介:某大型国企高级前端开发工程师,7年研发经验,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~

💟 作    者:码喽的自我修养❣️
📝 专    栏:常用组件库与实用工具

🌈 若有帮助,还请 关注➕点赞➕收藏  ,不行的话我再努努力💪💪💪

 更多专栏订阅推荐:

🥕 JavaScript深入研究

👍 前端工程搭建
💕 vue从基础到起飞

✈️ HTML5与CSS3

⭐️ uniapp与微信小程序

📝 前端工作常见问题汇总

✍️ GIS地图与大数据可视化

这篇关于Vue3 获取农历(阴历)日期,并封装日历展示组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108582

相关文章

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

使用Python实现获取屏幕像素颜色值

《使用Python实现获取屏幕像素颜色值》这篇文章主要为大家详细介绍了如何使用Python实现获取屏幕像素颜色值,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、一个小工具,按住F10键,颜色值会跟着显示。完整代码import tkinter as tkimport pyau

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解