用 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. 项目实战11—企业级nosql数据库应用与实战-redis的主从和集群

    企业级nosql数据库应用与实战-redis 环境背景:随着互联网2.0时代的发展,越来越多的公司更加注重用户体验和互动,这些公司的平台上会出现越来越多方便用户操作和选择的新功能,如优惠券发放.抢红包 ...

  2. 16进制到byte转换

    我们经常会看到这样的语法 (byte) 0xAD 0xAD实际是个16进制,转换成二进制为:10101101,转换成10进制是:173,它是个正数 10101101只是int的简写,int由4个byt ...

  3. Spring Cloud Zuul 添加 ZuulFilter

    紧接着上篇随笔Spring Cloud Zuul写,添加过滤器,进行权限验证 1.添加过滤器 package com.dzpykj.filter; import java.io.IOException ...

  4. spring boot与jdbcTemplate的整合案例2

    简单入门了spring boot后,接下来写写跟数据库打交道的案例.博文采用spring的jdbcTemplate工具类与数据库打交道. 下面是搭建的springbootJDBC的项目的总体架构图: ...

  5. Express4.x API (四):Router (译)

    Express4.x API 译文 系列文章 Express4.x API (一):application (译) -- 进行 Express4.x API (二):request (译) -- 完成 ...

  6. python3 爬虫---爬取豆瓣电影TOP250

    第一次爬取的网站就是豆瓣电影 Top 250,网址是:https://movie.douban.com/top250?start=0&filter= 分析网址'?'符号后的参数,第一个参数's ...

  7. 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

    内容简单介绍 .第二部分第五课:用户和权限,有权就任性 2.第二部分第六课预告:Nano,刚開始学习的人的文本编辑器 用户和权限.有权就任性 今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的吗 ...

  8. 浅析Spring事务传播行为和隔离级别

    7个传播行为.4个隔离级别. Spring事务的传播行为和隔离级别[transaction behaviorand isolatedlevel] Spring中事务的定义: Propagation(k ...

  9. Parcel.js + Vue 2.x 极速零配置打包体验

    继 Browserify.Webpack 之后,又一款打包工具 Parcel 横空出世 Parcel.js 的官网有这样的自我介绍 “极速零配置Web应用打包工具” 简单接触了一下,单从效率上来说,确 ...

  10. 如何连接别人电脑上的Oracle数据库--duende99

    需要一些前提条件: 1.对方的主机能被连接(如在同一局域网内) 2.需要知道对方数据库IP.端口号.服务名 3.需要知道对方提供的管理数据库的用户名及密码 连接方法: 1.在本地的oracle安装目录 ...