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开发者都需要知道的5个小技巧
Jan 08 Javascript
node.js中的fs.fstat方法使用说明
Dec 15 Javascript
Angular实现form自动布局
Jan 28 Javascript
javaScript如何跳出多重循环break、continue
Sep 01 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
深入理解Angular4中的依赖注入
Jun 07 Javascript
浅谈JS中的反柯里化( uncurrying)
Aug 17 Javascript
node.js文件上传重命名以及移动位置的示例代码
Jan 19 Javascript
详解如何在Vue里建立长按指令
Aug 20 Javascript
详解如何快速配置webpack多入口脚手架
Dec 28 Javascript
JavaScript判断浏览器运行环境的详细方法
Jun 30 Javascript
详解vue 2.6 中 slot 的新用法
Jul 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以post形式发送xml的方法
2014/11/04 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
DIV始终居中的js代码
2014/02/17 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
Angular4编程之表单响应功能示例
2017/12/13 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
Python实现发送与接收邮件的方法详解
2018/03/28 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
pytorch进行上采样的种类实例
2020/02/18 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
详解python如何引用包package
2020/06/07 Python
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
.NET程序员的数据库面试题
2012/10/10 面试题
教师找工作推荐信
2013/11/23 职场文书
学校安全工作制度
2014/01/19 职场文书
公司中秋节活动方案
2014/02/12 职场文书
水电工岗位职责
2015/02/14 职场文书
工作态度恶劣检讨书
2015/05/06 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
Python数组变形的几种实现方法
2022/05/30 Python