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 相关文章推荐
js如何获取file控件的完整路径具体实现代码
May 15 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
Oct 11 Javascript
JavaScript DOM进阶方法
Apr 13 Javascript
JQuery菜单效果的两个实例讲解(3)
Sep 17 Javascript
js学习之----深入理解闭包
Nov 21 Javascript
微信小程序 标签传入数据
May 08 Javascript
node.js调用Chrome浏览器打开链接地址的方法
May 17 Javascript
浅谈vue项目可以从哪些方面进行优化
May 05 Javascript
jQuery实现基本隐藏与显示效果的方法详解
Sep 05 jQuery
JS算法题之查找数字在数组中的索引位置
May 15 Javascript
解决webpack多页面内存溢出的方法示例
Oct 08 Javascript
vue 移动端记录页面浏览位置的方法
Mar 11 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
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
深入理解js中this的用法
2016/05/28 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
python使用epoll实现服务端的方法
2018/10/16 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
python打包生成so文件的实现
2020/10/30 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
非常详细的C#面试题集
2016/07/13 面试题
网上卖盒饭创业计划书
2014/01/26 职场文书
无故旷工检讨书
2014/01/26 职场文书
基层党员公开承诺书
2014/05/29 职场文书
微电影大赛策划方案
2014/06/05 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
升学宴家长答谢词
2015/09/29 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers
详解CSS3浏览器兼容
2022/12/24 HTML / CSS