项目场景:

项目中需要实现一个月日历的功能,通过dayjs进行封装实现获取一个月共有多少天,通过获取到的数据渲染生成日历


功能流程

  1. 根据输入的时间,利用dayjs获取每月第一天及最后一天
  2. while循环中使用isBefore方法,生成当月数据
  3. 通过dayjs中的day()方法获取星期,根据星期添加日历中上月天数
  4. 日历中下月天数通过 42减去 dayjs中daysInMonth()方法加上月天数
  5. 最后将moment格式日期进行格式化处理

代码实现

  //e:`2023-1`const getMonth = e => {const startDay = dayjs(e).startOf('month');const endDay = dayjs(e).endOf('month');let list = [];let currentDay = startDay;while (currentDay.isBefore(endDay)) {list.push({ day: currentDay });currentDay = currentDay.add(1, 'day');}//上个月补充let week = list[0].day.day();if (week == 0) {week = 7;}for (let i = 1; i < week; i++) {// ishow:区分是否是本月日期list.unshift({ day: startDay.add(-i, 'day'),isShow:false });}//下个月补充   42:日历中的六周 * 一周七天let nextWeek = 42 - (dayjs(e).daysInMonth() + week - 1);for (let i = 1; i <= nextWeek; i++) {// ishow:区分是否是本月日期list.push({ day: endDay.add(i, 'day'), isMonth: false })}list.forEach(item => {let str = item.day.$d.toLocaleDateString().replaceAll('/', '-');item.time = dayjs(str).format("YYYY-MM-DD")});console.log("本月天数",list)return list};

效果展示

获取一个月有多少天,生成日历相关推荐

  1. vue获取一个月有多少天

    需求:获取一个月有多少天 实现代码: // 获取一个月有多少天,curDate是开始日期,获取这个日期的月份的天数getCountDays(curDate) {const d = new Date(c ...

  2. python获取一个月有多少天

    可以使用 Python 的 calendar 模块来获取一个月有多少天. 首先,需要导入 calendar 模块: import calendar 然后,可以使用 calendar.monthrang ...

  3. java计算一个月有几周_java 如何获取 一个月 有多少周

    展开全部 你说需要计算一个月有多少周,若是指,一月,二月一直到十二月每个月有多少周的话,可以用32313133353236313431303231363533e59b9ee7ad94313333613 ...

  4. (03)JS/VUE获取一个月有多少天

    方法一: new Date()第3个参数默认为1,就是每个月的1号,把它设置为0时, new Date()会返回上一个月的最后一天,然后通过getDate()方法得到天数 function getMo ...

  5. js 获取一个月有多少天的方式

    方法一:new Date()第3个参数默认为1,就是每个月的1号,把它设置为0时, new Date()会返回上一个月的最后一天,然后通过getDate()方法得到天数 function getMon ...

  6. PHP获取一个月有多少天

    直接上代码: /** 获取当月有多少天* @param date $unix* return int*/public static function getDaysByMonth($unix){$mo ...

  7. calendar获取月份少一个月_VBA 技巧:计算一个月有多少天?

    VBA 技巧:计算一个月有多少天? 问题: 有时我们需要知道一个月有多少天,或者知道最后一天是31号还是30号 我们可以通过VBA代码来计算 Sub nb_days_month()'将日期传入变量,月 ...

  8. PHP获取一年有多少天、一个月有多少天(最全最新)

    获取一年有多少天|一个月有多少天详情请去网站: 如果浏览不顺畅请到原文章出处:https://www.sky8g.com/technology/2670/ 请注意可能会提示风险,这是csdn官网如果不 ...

  9. JS获取当前日期,获取上个月的日期,一个月有多少天

    小程序.H5 获取日期 // 获取时间不满两位补0formatTen: function (num) {return num > 9 ? (num + "") : (&quo ...

最新文章

  1. 01背包【动态规划】
  2. 97.PC 的串口是同步还是异步
  3. Centos常用系统命令
  4. 我在 Go 圈儿里的几位老朋友
  5. 单应性矩阵的相关理解
  6. Kotlin学习笔记 第四章 Java调用Kotlin
  7. 端到端--流量控制、可靠传输和滑动窗口机制学习资料整合
  8. MATLAB中滤波演示
  9. 人人网 校内- 日志分享
  10. 小摩尔来了!3分钟带你做个魔性小摩尔!
  11. SUSE12系统安装
  12. 苹果Mac新手必备技巧|了解使用 Mac 桌面
  13. 九爷带你玩转 oracle
  14. 研究生数学建模竞赛-无人机在抢险救灾中的优化应用
  15. mod_security简要安装设置指南
  16. nexus 仓库类型_Nexus仓库构建
  17. 用C语言开发NES游戏(CC65) 简介
  18. mysql 去除微秒_mysql的微秒补丁 - sihanjishu的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  19. java 日期类 周_Java中用Calendar类计算周和周的起始日期
  20. 平面图形原理总结(1):直线相交

热门文章

  1. 源支付聚合免签支付系统
  2. canvas练习笔记之手绘熊本熊
  3. 网络通信详解-深入浅出
  4. 视频监控远程传输方案
  5. 我经历过的失败产品和项目(二):一款无疾而终的棋牌类游戏
  6. 淘宝 模拟 登录 总结 【QQ 346767073 】
  7. Adobe Photoshop CS6图片无法拖入解决方法
  8. 机器学习中的K-means算法原理与R语言实例
  9. android ibinder类接口编辑
  10. 了解过什么是 DDD吗?一文带你掌握!(至尊典藏版)