JavaScript 计算指定月份有多少天
用 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,iVBORw0KGgoAAAANSUhEUgAAAQsAAAAyCAIAAADENWnUAAAG+klEQVR4nO2csW/TThTH81cghk79B5B+YuyKgI2OP7F1ATYvqFMXZ/KUIWL5/SRYmg4nUSYWp0UKosZCQpUQ+jWpU2QBalQpTuuoOEVp7N/w4PS4810uroFUvI9uIOfLu7v4fe+9O5tWspMTKlSoqEol29ujQoWKqlQygiDUkEIIQgcphCB0kEIIQgcphCB0kEIIQgcphCB0kEIuJb7vO47zu0dx+YiiyLKsKIrMv6JUyGg08jxvNBqVMbAi+L6/uLjo+z58ZIzhj6UQRdHy8nKuTd/3l5eXZ/opy4IxZllWkiSqBr7vLy0tBUGAKyfJl/0H9/cf3J8kX3jluN9/d/uWd/WKd/VKWLVx+9jbgXrv6pXY25Ev4fa4MZS31/9KOh39RFRdHG00zI3g2cntuSl5gkmn8/b6X0cbDcHU1J9XQKmQly9f1ut1xth4PDa0VZhcTwWF8JXScZyLKCS3i9+ukNy7pb+FmjGHVVtQSFi1wTVBKtxdkk7n3a2b4G2xt4M9L6zaB6sP9x/cFxwOE3s7727fGvf7mqmpukg6nYPVhzDIo43GVDvc1OG//wgKOdpo8PkKE8yt+WYtSSzLMo/ASoUMh8OnT5+CSE5PTw3NFSP3roOjQEyMoshxnLW1NcZYiV1cRoVoroZVW+PW2J9wS1ie4WPs7RxtNHCNDFyVPU8zGJVBcGIhgsndhVV73O8LSs7tQlZIrvEgCO7cuSMEYRW6fchkMnn27Fm9Xn/8+HEcxybmsu8aXURwvUJYAMAvwUcXfwTaM8YYY48ePQqCwPd9xpjjOKAQ3AXON3gbbEfTBVx6/vw5NMCmNAqRZwGVlmW9ePEC6rETywOAqQlD4r2DBp48eSL8enzixQIpV4jgOpAL4eCjV4jsqTJTu8htpkfuF/IoGKdhOPr2xSSxLMtwtZ2yU0+SpNls1uv1RqNxfHxsYtFxHO4fjuNgeXAnCIJgaWmJ32lVDGGMgTZAJ+D9QpTEZsHt4JJJF1DJv45HrlKIahYgG/g6mMVihiHJN0YVQ1SzmGnxw+CUY9zv/3f3b3A1SMyOt5rYvfQK0Ucq3p2+C2Amt85VJgw1V356YDE1aVmyQoRFDlZWrhbsHFg8ue4L7eHwYW1tLUkSqBG8BLsddjjBHU2yLKwKlUJUsxDa8/ooilZWVoQox78+NcsSZlE49wurNvdFcF/YS4BmYm/HMIbg3YWGqV1k6p20ClkhIPuwaqv28RrM9+vlZ1l8JZaXz9xUJ9MqRPiH4ziyl3B3/NkK0cxCpRD8I+DYAvwahYRVG3sPOBauwVuUTKsQOYDg4zJ+ZjW1C5wgcaBSdcyVuw/hNvVxT6YEhRTeqcOhk5yOC6svRq8QDizAcxVDOHqFyIsCn9FMCimQZR1tNGRvExw9rNp4LVd5G3iw4bZB0wVf+81nkUkKkQdpkv5xSsiyip32CkkFJvcUH8g9gFMpRGjMGOOuqfGt3C4KKEQ1C5VCgiBYWVlRrfq51qbOwvxAD7bIsk/jenltVilEiAPmXeMucp/bGBqUT3t56jhTzlbOTr3wE0PhlAb7DT4FWvzx4QZsSflCmzsHrnt8OoTta3xL7iKbppDcgybVLFQKyX4MqkJcxVeFsyzVLMzTAyH/EZ7c8cd52O1wngOFu/JMAUTTBX7GJ3ShIqzaqlngS+ZbmtJOewuQmwL9ye9HCMqRtyKzcnELfzizxuGSFSKkDXQ7cRKYSae3xdDkq8RUSnvr5CIjwEnFnywPQMiySnm1jN5cLEaZby4SBJGRQghCDymEIHSQQghCBymEIHSQQghCBymEIHSQQghCBymEIHRMV8jXr19/wTgIYj6ZopA4jlut1snJibnFQf/87s3uQmV3obJbs3v40ub6AOrlSwQxn+gUEkVRq9VyXffDhw/mFmt2782r0+y7VDbXB1C/uT5YvfdxlKTyJYKYW/IVkqZpHMfb29uzykMAq6Jm93jcGCXp6r2PpBBi/slXyOHh4fb2drPZDMMwTdMsy4bD4cHBwdnZ2UzWsUK67bMb1/ZAJJvrg7s3u4P++YXHTxA/lxyFxHG8tbXlum632+WVr1+/dl13f3/f3LScSkHoWKjsctkQxJyTo5DJZPL+/XvXdVut1nA4hMpPnz55nmf4J7OAmt3DgQIEU7N7oJMb1/a67dkiEkH8evKzrPPz83a73Ww2W63WYFBkt1Cze4IGanaPhw4QCR1nEfOP8iwrTdN2u+26ruu6fbO/isfZXB8I8pAlgTfuBDG36E570zQNw7DZbH7+/Nnc4ptXpwuVXTjwxeDdOeza6SyLmH+mP1Of6T/14seFvHC11OweryR5EJcCei+LIHSQQghCBymEIHSQQghCBymEIHSQQghCR+WEIAg1/wM4m8BYuCp35AAAAABJRU5ErkJggg==" alt="" />
三、脸有点疼
发文还不到一小时,就被一位仁兄打脸了
原来还有更简单的办法:
new Date(year, month, ).getDate()
使用 new Date() 创建时间对象时,如果 date 传入 0,就能直接通过 getDate() 获取到最后一天的日期
aaarticlea/png;base64,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" alt="" />
JavaScript 计算指定月份有多少天的更多相关文章
- JavaScript计算指定日期与当前日期的相差天数
java中处理2个时间段相差几天很容易,直接调相关方法就行,不过js处理这类问题稍微有点不易,项目开发中也用到了,如下: 1 2 3 4 5 6 7 8 9 10 11 12 //计算两个日期天数差的 ...
- java获取指定月份有几个星期x,获取指定月份跨了多少个星期
例如获取2020年5月一共有多少个星期二,一共跨了多少个星期 public class MainTest { public static void main(String[] args) throws ...
- JAVA 打印指定月份日历
package learnExercise; import java.util.Scanner; public class PrintCalender { /** * @param args */ p ...
- js实现指定日期增加指定月份
首先,大致思路为: 1. 先将字符串格式的时间类型转化为Date类型 2. 再将Date类型的时间增加指定月份 3. 最后将Date类型的时间在转化为字符串类型 1. 先将字符串格式的时间类型转化为 ...
- PHP获取指定月份的第一天开始和最后一天结束的时间戳函数
<?php /** * 获取指定月份的第一天开始和最后一天结束的时间戳 * * @param int $y 年份 $m 月份 * @return array(本月开始时间,本月结束时间) */ ...
- javascript计算两个时间差
其实,javascript计算时间差的方式非常简单,如果是默认的Date()类型,直接相减就是相差的毫秒数. var d1 = new Date('2016/03/28 10:17:22'); var ...
- java计算一个月有多少天和多少周
import java.util.Calendar; /** * 功能概述:计算指定年月的天数和周数<br> * 创建时间:2010-5-17 下午05:25:58<br> * ...
- js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。
1.计算指定时间距今多久 var date1=new Date('2017/02/08 17:00'); //开始时间 var date2=new Date(); //当前时间 var date3=d ...
- 计算指定文件的MD5值
/// <summary> /// 计算指定文件的MD5值 /// </summary> /// <param name="fileName"> ...
随机推荐
- 怎么让普通用户使用root权限执行用户命令
1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy //修改密码Changing passwo ...
- Vue单页面骨架屏实践
github 地址: VV-UI/VV-UI 演示地址: vv-ui 文档地址:skeleton 关于骨架屏介绍 骨架屏的作用主要是在网络请求较慢时,提供基础占位,当数据加载完成,恢复数据展示.这样给 ...
- js 哈希路由原理实现
在 js 中,有一种方法,可以在不刷新页面的情况下,页面的内容进行变更,ajax 是一种,这里介绍另一种,就是 哈希路由原理 先看一个简单的路由和页面内容关联的例子,要实现两个功能: 1.1. 浏览器 ...
- 数据库 E-R模型
数据库 E-R模型被定义被两种模型 "实体模型" AND "关系模型" 1.1 实体模型 如图:这是一个"项目表" Project ...
- Linux中MySQL配置文件my.cnf参数优化
MySQL参数优化这东西不好好研究还是比较难懂的,其实不光是MySQL,大部分程序的参数优化,是很复杂的.MySQL的参数优化也不例外,对于不同的需求,还有硬件的配置,优化不可能又最优选择,只能慢慢的 ...
- Python爬虫(十)_正则表达式
本篇将介绍python正则表达式,更多内容请参考:[python正则表达式] 什么是正则表达式 正则表达式,又称规则表达式,通常被用来检索.替换那些符合某个模式(规则)的文本. 正则表达式是对字符串操 ...
- 使用AOP记录应用调用链开销
最近系统出现了一次线上的性能问题,本来以为目前的QPS应该是不会出现任何问题的,结果微服务还是比较容易因为某个点的问题导致雪崩的...出了性能问题就要做分析,正统的思路是要不断进行压测用JProfil ...
- 走进Linux01-磁盘分区与文件夹结构
近期学习Linux,首先安装系统,遇到了磁盘分区.之前仅仅知道Linux分区是从/(根文件夹)開始的,至于磁盘格式,多块盘怎样挂载全然不了解,系统的查询了一下Linux磁盘分区和文件夹结构,整理一下. ...
- C语言可变參函数的实现
1 C语言中函数调用的原理 函数是大多数编程语言都实现的编程要素.调用函数的实现原理就是:运行跳转+參数传递.对于运行跳转,全部的CPU都直接提供跳转指令:对于參数传递,CPU会提供多种方式.最常见的 ...
- 剑指Offer面试题39(Java版):二叉树的深度
题目:输入一棵二叉树的根节点,求该数的深度. 从根节点到叶结点依次进过的结点(含根,叶结点)形成树的一条路径,最长路径的长度为树的深度. 比如.例如以下图的二叉树的深度为4.由于它从根节点到叶结点的最 ...