JS获取指定月份的天数两种实现方法


Posted in Javascript onJune 22, 2018

最近看到一个有意思的试题,正好在需求中也碰到类似的问题,即计算某个月的天数问题。碰到类似问题也许大部分会想是不是还要判断闰年、平年,如果这样想的话就复杂了,下面给出具体的计算方法。

获取月份天数方法一:

//传入年份和月份 获取该年对应月份的天数
function getMonthDays(year,month){
  var thisDate = new Date(year,month,0); //当天数为0 js自动处理为上一月的最后一天
  return thisDate.getDate();
}

上面应该时获取月份天数最简单的方法之一了,当Date中参数超出范围时js会自动处理,如果传值小于等于0,则日期将会向前推,否则日期将会向后推。下面时MDN原文,也提到了此现象:

Note: 当Date作为构造函数调用并传入多个参数时,如果数值大于合理范围时(如月份为13或者分钟数为70),相邻的数值会被调整。比如 new Date(2013, 13, 1)等于new Date(2014, 1, 1),它们都表示日期2014-02-01(注意月份是从0开始的)。其他数值也是类似,new Date(2013, 2, 1, 0, 70)等于new Date(2013, 2, 1, 1, 10),都表示时间2013-03-01T01:10:00。

下面给出几个例子供参考:

1.参数传入负数

JS获取指定月份的天数两种实现方法

2.传入大于规定范围的值

JS获取指定月份的天数两种实现方法

JS获取指定月份的天数两种实现方法

以上可看出,js本身对日期处理还是比较好的,同时开发人员也可以利用这一点获取想要的结果。

获取月份天数方法一:

下面就是比较正常的获取方式了,代码:

//根据两个月份同一天的差值获取,同样是传入需要获取的对应年份和月份
function getMonthDays(year,month){
  var stratDate = new Date(year,month-1,1),
     endData = new Date(year,month,1);
  var days = (endData -stratDate)/(1000*60*60*24);
  return days;
}

第二种方式则是根据所求月份和下一个月份某一天的差值获取对应月份的天数。

总结

以上所述是小编给大家介绍的JS获取指定月份的天数两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery事件 delegate()使用方法介绍
Oct 30 Javascript
javascript作用域和闭包使用详解
Apr 25 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
Jun 23 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
Mar 20 Javascript
js识别uc浏览器的代码
Nov 06 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
Sep 14 Javascript
vue.js表格分页示例
Oct 18 Javascript
Javascript 实现放大镜效果实例详解
Dec 03 Javascript
vue.js学习笔记:如何加载本地json文件
Jan 17 Javascript
Vue 封装防刷新考试倒计时组件的实现
Jun 05 Javascript
vue实现页面切换滑动效果
Jun 29 Javascript
Webpack的Loader和Plugin的区别
Nov 09 Javascript
vue实现点击当前标签高亮效果【推荐】
Jun 22 #Javascript
vue中使用element-ui进行表单验证的实例代码
Jun 22 #Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 #Javascript
JavaScript 下载svg图片为png格式
Jun 21 #Javascript
MVVM 双向绑定的实现代码
Jun 21 #Javascript
在vue2.0中引用element-ui组件库的方法
Jun 21 #Javascript
vue树形结构获取键值的方法示例
Jun 21 #Javascript
You might like
php下批量挂马和批量清马代码
2011/02/27 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PDO::inTransaction讲解
2019/01/28 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
Javascript Object.extend
2010/05/18 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
解读Python中degrees()方法的使用
2015/05/18 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
总经理岗位职责
2013/11/09 职场文书
参观接待方案
2014/03/17 职场文书
公司副总经理任命书
2014/06/05 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
感谢信格式范文
2015/01/22 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
pandas数值排序的实现实例
2021/07/25 Python
Python面向对象编程之类的概念
2021/11/01 Python