用 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. YiShop_做一个b2c商城要多少钱

    [YiShop商城系统]做一个b2c商城要多少钱?是企业在做一个b2c商城最关心的问题.每个企业都是想用最少的钱做一个好的b2c商城.但企业这种想法可能在现实中是无法实现的.网站这种产品现实中是一分钱 ...

  2. jquery on()动态绑定元素的的点击事件无反应的问题记录

    1.jquery使用版本:v2.0 2.重现代码: html <table class="table"> <thead> <tr> <th ...

  3. 是否是有效的dom节点--轮子代码

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...

  4. jenkins+github持续集成中的坑

    1.前言 刚开始开发自己的独立博客的时候,每次发布都要手动打包,上传服务器,杀tomcat进程,重启,来回这么重复性工作,很快就有点不耐烦了.如果能自动化的东西,就绝不要手动了,所以自己搭建了个持续集 ...

  5. C#线程等待句柄

    相互排斥对象 Mutex private Mutex m = new Mutex(); public void Method(){ m.WaitOne(); //运行操作 m.ReleaseMutex ...

  6. 单行json_ajax

    html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  7. java 网络编程学习笔记

    1.IP地址 IP地址组成:网络号段+主机号段 IP地址分类: A类:第一号段为网络号段+后三段的主机号段 1.0.0.1---127.255.255.254(10.x.x.x是私有地址) 一个网络号 ...

  8. mysql查询进程、导入数据包大小设置

    mysql查询进程.导入数据包大小设置 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-12-27 查询正在执行的进程: ...

  9. redis启动脚本报错

    1.执行redis脚本启动报错 [root@localhost ~]# service redis start /var/run/redis_6379.pid exists, process is a ...

  10. Hibernate--使用注解配置映射关系

    写在前面: 配置实体类与数据库的映射关系,有两种方式: 1.使用*.hbm.xml    :  2.使用@注解 一:注解的方式: 1.@Entity 加在类的前面,将类声明为持久化类. 2.@Tabl ...