用 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. mysql数据库误删除操作说明

    在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失!然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办 ...

  2. Codeforces 821E Okabe and El Psy Kongroo

    题意:我们现在位于(0,0)处,目标是走到(K,0)处.每一次我们都可以从(x,y)走到(x+1,y-1)或者(x+1,y)或者(x+1,y+1)三个位子之一.现在一共有N段线段,每条线段都是平行于X ...

  3. 自学Python全栈开发的第二次笔记(Python需要注意的地方)

    好几天没写blog了,今天整理整理.写blog一定要坚持下去.     Python解释器 #!/usr/bin/env python #-*-coding:utf-8-*-   #  无效的内容,只 ...

  4. 运行期以索引获取tuple元素-C++14(原创)

    在编译期很容易根据索引来获取对应位置的元素,因为 tuple 的帮助函数 std::get<N>(tp) 就能获取 tuple 中第 N 个元素.然而我们却不能直接在运行期通过变量来获取 ...

  5. ROC和AUC的区别

    ROC是一个曲线,AUC是曲线下面的面积值.   ROC曲线是FPR和TPR的点连成的线. 可以从上面的图看到,横轴是FPR, 纵轴是TPR (TPR = TP / (TP + FN):FPR = F ...

  6. FPGA编程基础(一)--參数传递与寄存器使用

    一.參数映射 參数映射的功能就是实现參数化元件.所谓的"參数化元件"就是指元件的某些參数是可调的,通过调整这些參数从而可实现一类结构类似而功能不同的电路.在应用中.非常多电路都可採 ...

  7. html5视频标签

    <video width="200" height="200" poster="img/shamo.jpg" src="vi ...

  8. 怎样在Ubuntu Scope中定义设置变量并读取

    在本遍文章中,我们来解说怎么对我们的Ubuntu Scope进行设置.对Scope而言,有些时候我们希望可以使用设置来改变我们的显示.或对我们的搜索进行又一次定义.关于很多其它Scope的开发,请參阅 ...

  9. Java数组的一些使用方法及堆栈存储

    数组 用于存储一组同一数据类型数据的容器 数组会对放入其中的数据自动编号,编号是从0开始的---下标 定义格式 数据类型[] 数组名 = new 数据类型[数组的大小];---可以先声明再初始化 in ...

  10. Eclipse Maven构建WebApp项目资源目录显示不全的原因与解决方式

    一.问题展示 1.Eclipse在使用Maven构建WebApp项目的时候,首先Maven的安装和配置都没有问题的,但是构建项目之后,Maven项目要求的几个必须要有的资源目录显示不了: 问题如下图: ...