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 相关文章推荐
javascript中的float运算精度实例分析
Aug 21 Javascript
JS文本框追加多个下拉框的值的简单实例
Jul 12 Javascript
浅析JavaScript中的typeof运算符
Nov 30 Javascript
为开发者准备的10款最好的jQuery日历插件
Feb 04 Javascript
$(document).ready(function() {})不执行初始化脚本
Jun 19 Javascript
jQuery使用fadein方法实现渐出效果实例
Mar 27 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
Apr 26 Javascript
js 求时间差的实现代码
Apr 26 Javascript
jQuery使用deferreds串行多个ajax请求
Aug 22 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
Dec 04 Javascript
webpack常用构建优化策略小结
Nov 21 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
Mar 06 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递归调用的小技巧讲解
2013/02/19 PHP
php批量修改表结构实例
2017/05/24 PHP
清除div下面的所有标签的方法
2014/02/17 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
py2exe 编译ico图标的代码
2013/03/08 Python
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
Python中异常重试的解决方案详解
2017/05/05 Python
一百多行python代码实现抢票助手
2018/09/25 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
python getpass实现密文实例详解
2019/09/24 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
python利用opencv实现颜色检测
2021/02/23 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
党员违纪检讨书
2014/02/18 职场文书
食品安全承诺书
2014/05/22 职场文书
校车安全责任书
2014/08/25 职场文书
医者仁心观后感
2015/06/17 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL