每次遇到不太熟悉的东西,就会莫名的心虚,如果再有需求确实需要,还会有反抗情绪,就比如说昨天的一个需求。

需求细节

报表数据项加链接,需要把起止时间携带到链接地址上,方便在对应地址的页面回显数据。不过报表数据页面时间是按月份操作的,携带的时间需要时年月日,并且起始时间为"年-月-01",截止时间为"年-月-该月最后一天"。

心理活动

直接想到的就是,一三五七八十腊,三十一天永不差;四六九十一,三十天;二月平年28天,闰年29天。闰年是能被4除尽的年份。好麻烦,需要知道每月最后一天,这么大代价。

PO姑娘说用现成的函数呀,心理默默念她好几遍,不知道有没有打喷嚏。

不情愿归不情愿,新想法还是会平心接受,按照这个思路老老实实的去查了。

居然还真有,服了服了。

今天早上拿着粉红糖给PO姑娘送过去,人家是C#后端转过来的,说是只做过一会会,一会会是两年。只能承认关公面前丢丑了。

获取每个月最后一天的2方法

第一种

思想:用下一个月1号对应的毫秒减去一天对应的毫秒(246060*10000)就可以获得本月的最后一天日期。

  getMonthLastDateFn(){let dateStr = '2020-02-06'; //需要获取此月最后一天的日期let dateObj = new Date(dateStr);let nextMonth = dateObj.getMonth()+1; //0-11,下一个月//设置当前日期为下个月的1号dateObj.setMonth(nextMonth);dateObj.setDate(1);  //1-31let nextMonthFirstDayTime = dateObj.getTime(); //下个月一号对应毫秒let theMonthLastDayTime = nextMonthFirstDayTime-24*60*60*1000;  //下个月一号减去一天,正好是这个月最后一天let theMonthDay = (new Date(theMonthLastDayTime)).getDate();return theMonthDay;}
第二种

思想:利用Date函数对传入的日期参数(参数值为0),new Date(year,month,date),month取值范围为0-11(这样直接传入需求的月份就是下一个月)。

参考依据:

http://es5.github.io/#x15.9.1.12


先获取对应年-月-1号,再用1号加上传入的date后,减去1;这样如果date传入的是0,经过这样的计算得到的就是这个月的最后一天的日期。

getMonthLastDateFn(){let dateStr = '2020-02-06'; //需要获取此月最后一天的日期let dateObj = new Date('2020','02',0);  //注意:这里传入月份取值范围是0-11let theMonthDay = dateObj.getDate();return theMonthDay;}

js获取每个月最后一天的两种方法相关推荐

  1. 小程序获取用户信息的两种方法

    小程序获取用户信息的两种方法 第一种使用 getUserProfile 代码示例 第二种使用 头像昵称填写 相信大家之前也经常使用open-data获取用户的头像和昵称吧,但微信的这个改编意味着我们要 ...

  2. js循环添加事件的两种方法

    js循环添加事件的两种方法 选择下拉列表中的一个li将文本传到框中 问题:写此二级菜单时用到的方法不好,对此进行优化 原始js代码: <script>// 思路:1.点击下拉框a时,ul中 ...

  3. iOS: JS和Native交互的两种方法,iosjsnative交互

    iOS: JS和Native交互的两种方法,iosjsnative交互 背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)string ...

  4. JAVA获取安卓系统下usb_Android 获取 usb 权限的两种方法

    前言: 最近工作上遇到几个USB模块在android平台上适配使用的情况,所以要用到USB权限获取问题 ##USB权限获取有以下2种方式: 一.直接在AndroidManifest.xml文件中进行如 ...

  5. JS区分中英文字符的两种方法

    JS区分中英文字符的两种方法: 正则和charCodeAt()方法. 正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. ...

  6. root android oppo,OPPO R9S怎么ROOT oppor9s获取root权限的两种方法

    OPPO R9S如何ROOT呢?作为一款最新的OPPO系列智能手机,对于刚入手的用户而言,可能不知该如何获取OPPO R9S手机ROOT权限.下面就与大家分享一下获取OPPO R9S手机ROOT权限的 ...

  7. Java 跨平台获取 MAC 地址的两种方法

    前言 有时我们因为软件授权或者其它需要获取主机唯一标识而需要获取用户主机的MAC地址,而本文则将介绍如何通过Java来实现跨平台获取MAC地址的两种方法,同时具体的代码也已上传到GitHub. 如果不 ...

  8. 获取手机联系人的两种方法

    获取手机联系人的两种方法 第一种方法比较简单 就几句话 但是获取的信息不完善 第二种方法比较难 代码比较多 获取的信息全 须要加的权限 : <uses-permission android:na ...

  9. ENVI获取地物波谱特征的两种方法

    ENVI获取地物波谱特征的两种方法 以Landsat8遥感影像为例 [方法一] 首先利用[Layer Stacking]将不同波段的影响合成一幅多光谱影像(一定要按照波长顺序,如果是Landsat8影 ...

最新文章

  1. 使用axios上传照片
  2. 8086条件转移指令JE,JZ
  3. html如何查看文档,查看文档
  4. 施一公院士关于科研、读博的精彩演讲
  5. 泡着枸杞写bug的三流程序员凭什么逆袭到一线大厂?
  6. Redis(二):Redis的安装及配置(2)---设置启动信息
  7. 人人都能有数字替身:量子动力FACEGOOD发布AI交互实时数字人
  8. 贾君鹏你妈妈喊你回家吃饭-利用WCF的Duplex推送消息
  9. 太阳跟踪装置系统设计与制作
  10. 情人节送男生什么礼物好,情人节送礼清单
  11. 中文手写数据集训练识别
  12. 2017-2021书单5周年 |读书总结、读书方法论、知识体系搭建、效率工具推荐系列文章(1)δ星 丨读书笔记与书单 notes...
  13. ESLint Prettier
  14. 去除安卓apk中的广告
  15. 【视角】限贷传闻横扫楼市 专家看空房地产业
  16. Python强大的自省机制
  17. linux rhel unix centos FreeBSD 查看CPU核数使用率 系统 位 内存大小 硬盘 HBA光纤卡号 常用命令
  18. 1046错误mysql_数据库实例:如何解决mysql 1046错误
  19. 58 同城 iOS 客户端 Hybrid 框架探索
  20. 萌新必入!手把手教你玩转Synchronized锁和Lock锁!

热门文章

  1. 远程计算机未配置身份验证出现问题怎么办,远程桌面连接,“发生身份验证错误。要求的函数不受支持”解决办法...
  2. 大数据改变小生活,政务大数据能为我们带来什么?
  3. 走出舒适区,是为了更大的舒适区。
  4. [Free] Cracking the Coding Interview 6th Download
  5. 如何通过免填邀请码,实现App用户增长
  6. 无源晶振匹配电容—计算方法
  7. Linux中编辑视频字幕
  8. 智库大会 | 面向未来 向新时代发出数字经济倡议书
  9. MEM/MBA 写作-论说文(05)练习及范文
  10. 交流充电桩电路图_如何分辨直流充电桩和交流充电桩?-原理图|技术方案