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 的 trim 函数的代码
Aug 13 Javascript
javascript eval和JSON之间的联系
Dec 31 Javascript
一些常用的JavaScript函数(json)附详细说明
May 25 Javascript
解析John Resig Simple JavaScript Inheritance代码
Dec 03 Javascript
alert中断settimeout计时功能
Jul 26 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
Dec 12 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
12个超实用的JQuery代码片段
Nov 02 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
May 17 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
May 23 Javascript
jQuery实现简单轮播图效果
Dec 27 jQuery
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中数组的分组排序实例
2014/06/01 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
JS获取父节点方法
2009/08/20 Javascript
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
浅析javascript 定时器
2014/12/23 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
详解vue高级特性
2020/06/09 Javascript
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
python基础教程之面向对象的一些概念
2014/08/29 Python
python登陆asp网站页面的实现代码
2015/01/14 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
马智宇结婚主持词
2014/04/01 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
Go语言应该什么情况使用指针
2021/07/25 Golang
MySQL连接控制插件介绍
2021/09/25 MySQL
如何通过cmd 连接阿里云服务器
2022/04/18 Servers