用 js 画工作日历的时候,需要用 js 计算指定月份一共有多少天

在网上找了些方法,都比较繁琐,后来灵机一动,想到一个偷懒的办法,分享一下

一、原理分析

要想得到某月有多少天,只需要获取到当月最后一天的日期就行了

围绕这一思路,灵活调用 setMonth(),getMonth(),setDate(),getDate(),计算出所需日期

二、代码实现

function getMonthLength(date) {
let d = new Date(date)
// 将日期设置为下月一号
d.setMonth(d.getMonth()+)
d.setDate('')
// 获取本月最后一天
d.setDate(d.getDate()-)
return d.getDate()
}

aaarticlea/png;base64,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" alt="" />

三、脸有点疼

发文还不到一小时,就被一位仁兄打脸了

原来还有更简单的办法:

new Date(year, month, ).getDate()

使用 new Date() 创建时间对象时,如果 date 传入 0,就能直接通过 getDate() 获取到最后一天的日期

aaarticlea/png;base64,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" alt="" />

JavaScript 计算指定月份有多少天的更多相关文章

  1. JavaScript计算指定日期与当前日期的相差天数

    java中处理2个时间段相差几天很容易,直接调相关方法就行,不过js处理这类问题稍微有点不易,项目开发中也用到了,如下: 1 2 3 4 5 6 7 8 9 10 11 12 //计算两个日期天数差的 ...

  2. java获取指定月份有几个星期x,获取指定月份跨了多少个星期

    例如获取2020年5月一共有多少个星期二,一共跨了多少个星期 public class MainTest { public static void main(String[] args) throws ...

  3. JAVA 打印指定月份日历

    package learnExercise; import java.util.Scanner; public class PrintCalender { /** * @param args */ p ...

  4. js实现指定日期增加指定月份

    首先,大致思路为: 1. 先将字符串格式的时间类型转化为Date类型 2. 再将Date类型的时间增加指定月份 3. 最后将Date类型的时间在转化为字符串类型 1.  先将字符串格式的时间类型转化为 ...

  5. PHP获取指定月份的第一天开始和最后一天结束的时间戳函数

    <?php /** * 获取指定月份的第一天开始和最后一天结束的时间戳 * * @param int $y 年份 $m 月份 * @return array(本月开始时间,本月结束时间) */ ...

  6. javascript计算两个时间差

    其实,javascript计算时间差的方式非常简单,如果是默认的Date()类型,直接相减就是相差的毫秒数. var d1 = new Date('2016/03/28 10:17:22'); var ...

  7. java计算一个月有多少天和多少周

    import java.util.Calendar; /** * 功能概述:计算指定年月的天数和周数<br> * 创建时间:2010-5-17 下午05:25:58<br> * ...

  8. js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。

    1.计算指定时间距今多久 var date1=new Date('2017/02/08 17:00'); //开始时间 var date2=new Date(); //当前时间 var date3=d ...

  9. 计算指定文件的MD5值

    /// <summary> /// 计算指定文件的MD5值 /// </summary> /// <param name="fileName"> ...

随机推荐

  1. IIS网站本机可以访问但局域网其他机器无法访问 解决方法

    在IIS部署网站的时候,发现只有本机可以访问,通过localhost和IP地址都可以,但是当局域网其他机器访问我的网站的时候,无响应. 我的是WIN10的系统 解决方法:   网站所对应的端口必须对外 ...

  2. 【NOIP2015提高组】跳石头

    https://www.luogu.org/problem/show?pid=2678 最小值最大问题,二分答案.每次检查是否能仅移走m块岩石使得所有跳跃距离均大于等于mid. #include &l ...

  3. 好好写代码吧,没事别瞎B去创业!

    知乎上看到这个问题 正好最近想写篇关于此的文章,于是就回答了一波. 也贴到这里来,回答如下 : 本问题简直为我量身定制,做为一个正在创业中的苦逼少年,说说我是如何从鼓吹怂恿身边人创业转换成反对创业的. ...

  4. Python爬虫(八)_Requests的使用

    Requests:让HTTP服务人类 虽然Python的标准库中urllib2模块中已经包含了平常我们使用的大多数功能,但是它的API使用起来让人感觉不太好,而Requests自称"HTTP ...

  5. 转自知乎-wifi破解

    上点python有意思的代码. 环境准备 python2.7 pywifi模块 字典 清除系统中的任何wifi连接记录 导入模块 这里用的模块就这三个 pywifi的_wifiutil_linux.p ...

  6. android动画介绍之 自己定义Animation动画实现qq抖一抖效果

    昨天我们介绍了Animation的基本使用方法.小伙伴们了解的怎么样了?假设还没有了解过Animation的小伙伴能够看看这篇博客 android动画介绍--Animation 实现loading动画 ...

  7. LDA主题模型学习笔记5:C源代码理解

    1.说明 本文对LDA原始论文的作者所提供的C代码中LDA的主要逻辑部分做凝视,原代码可在这里下载到:https://github.com/Blei-Lab/lda-c 这份代码实现论文<Lat ...

  8. Ubuntu1204 vim中文乱码解决方法

    加入中文字符编码 sudo vi /var/lib/locales/supported.d/local #加入以下的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh ...

  9. Codeforces Round #271 (Div. 2) F题 Ant colony(线段树)

    题目地址:http://codeforces.com/contest/474/problem/F 由题意可知,最后能够留下来的一定是区间最小gcd. 那就转化成了该区间内与区间最小gcd数相等的个数. ...

  10. canvas绘制多边形

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...