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 Array对象的扩展函数代码
Apr 24 Javascript
javascript动态向网页中添加表格实现代码
Feb 19 Javascript
jquery 为a标签绑定click事件示例代码
Jun 23 Javascript
jQuery+HTML5美女瀑布流布局实现方法
Sep 21 Javascript
jQuery简单实现仿京东分类导航层效果
Jun 07 Javascript
浅谈几种常用的JS类定义方法
Jun 08 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
Jan 09 Javascript
浅析Node.js非对称加密方法
Jan 29 Javascript
JS中的回调函数实例浅析
Mar 21 Javascript
vue如何引入sass全局变量
Jun 28 Javascript
快速解决vue-cli在ie9+中无效的问题
Sep 04 Javascript
微信小程序开发(二):页面跳转并传参操作示例
Jun 01 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开发的一些注意点总结
2010/10/12 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php简单smarty入门程序实例
2015/06/11 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
Jquery常用技巧收集整理篇
2010/11/14 Javascript
jquery json 实例代码
2010/12/02 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
详解Python中time()方法的使用的教程
2015/05/22 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
自荐信怎么写
2015/03/04 职场文书
创业计划书之酒厂
2019/10/14 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
nginx部署多前端项目的几种方法
2021/05/25 Servers
python创建字典及相关管理操作
2022/04/13 Python