方法1

/**
* 获取某年月的天数
* @param year 年
* @param month 月(0-11)
* @returns {number} 天数
*/
var getDaysOfMonth = function (year, month) {
month = month + 1;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 29 : 28;
default:
return 0;
}
};

方法2

/**
* 获取某年月的天数
* @param year 年
* @param month 月(0-11)
* @returns {number} 天数
*/
var getDaysOfMonth2 = function (year, month) {
month++;
if (month > 11) {
month = 0, year++;
}
return new Date(new Date(year, month, 1).getTime() - 1000 * 3600 * 24).getDate();
};

经过测试第一个方法效率明显高出不少。

测试代码

var testCostTime = function (method) {
var d1 = new Date();
if(method==1){
for(var i=0;i<100000;i++){
getDaysOfMonth(2017,1);
}
}else{
for(var i=0;i<100000;i++){
getDaysOfMonth2(2017,1);
}
}
console.log('cost time:'+(new Date().getTime()-d1.getTime()));
}
<input type="button" value="测试1" onclick="testCostTime(1)"/>
<input type="button" value="测试2" onclick="testCostTime(2)"/>

进行10万次调用测试后,方法1耗时为0-1毫秒,方法2耗时为38-41毫秒。所以建议使用方法一,进行计算年月的天数。

JavaScript(JS)计算某年某月的天数(月末)的更多相关文章

  1. js如何获取一个月的天数 data javascript

    js如何获取一个月的天数 function days(year,month){ var dayCount; now = new Date(year,month, 0); dayCount = now. ...

  2. js计算两个日期的天数差值

    js计算两个日期的天数差值 通过两个日期计算这两个日期之间的天数差值 /** * 计算天数差的函数,通用 * @param sDate1 * @param sDate2 * @returns {Num ...

  3. Java练习 SDUT-1160_某年某月的天数

    C语言实验--某年某月的天数 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入年和月,判断该月有几天? Input ...

  4. (Py练习)输入某年某月判断天数

    # 输入某年某月,判断这一天是这一年的第几天 year = int(input("year:\n")) month = int(input("month:\n" ...

  5. 【javaScript】获取某年某月的的最后一天(即当月天数) 妙用

    javaScript里 面的new Date("xxxx/xx/xx")这个日期的构造方法有一个妙处,当你传入的是"xxxx/xx/0"(0号)的话,得到的日期 ...

  6. js Date 生成某年某月的天数

    $(function () { //构造一个日期对象: var day = new Date(2014, 2, 0); //获取天数: var daycount = day.getDate(); al ...

  7. js 计算某年某周日期范围

    <HTML><HEAD><script type="text/javascript"> //目前只判断了4位有效输入的年份,//日期输出格式已处 ...

  8. 用HTML和javascript(JS)计算触屏手机手指滑动方向的演示

    移动终端的流行,程序员希望通过HTML+JS完成触屏动作的识别.下面给出具体实现的例子,供大家参考. 将下面的代码复制并保存,用手机访问,现在的手机浏览器一般都支持触屏,针对本演示来讲就是支持三个js ...

  9. js计算两个日期相差天数

    //两个时间相差天数 兼容firefox chrome var days = function(startDate) { var sdate = new Date(startDate.replace( ...

随机推荐

  1. mac配置虚拟机的net模式

    a.点击PD的偏好设置进入 1)选择net模式(shared)(相当于VM的V8虚拟机) 2)勾选将mac连入当前的网络 3)勾选在网络系统偏好设置中显示网络连接 b.点击mac的网络系统偏好设置,可 ...

  2. ubuntu 上运行的django 出现No space left on device错误

    运行django出现错误信息: [2016-02-16 14:33:24,476 pyinotify ERROR] add_watch: cannot watch /usr/local/lib/pyt ...

  3. 【手记】如果Idx/Sub字幕导不进MKVToolNix,看看是否这个原因

    用记事本之类的文本编辑器打开idx文件,看看时间轴部分是不是存在不规范的条目,比如: timestamp: :::, filepos: 注意,上述条目中,filepos:后面缺了一个空格,就这么一处问 ...

  4. 2018-2019-2 网络对抗技术 20165314 Exp6 信息搜集与漏洞扫描

    一.原理与实践说明 1.实践内容 本实践的目标是掌握信息搜集的最基础技能.具体有: 1.各种搜索技巧的应用 2.DNS IP注册信息的查询 3.基本的扫描技术:主机发现.端口扫描.OS及服务版本探测. ...

  5. stark - 3 ⇲自动生成URL及视图

    以往建立了一张表,需要 1.为每张表创建4个url 2.为每张表创建4个视图函数 urlpatterns = [ url('^role/list/$',role.role_list,name='rol ...

  6. wordpress 后台页面无法显示绑定的台湾语言

    问题:当前切换到的语言是English,然后在页面的列表中,分别显示的语言有中文和香港,没有出现台湾的图标,如上图所示 原因:在polylang插件的设置里面,可以看到台湾语言的 Language c ...

  7. 学习react心得及总结

    注意学习这个在D盘:小红书第一部分的案例react/new-my-app 小红书第二部分的案例react/make-redux 小红书第三部分的案例react/my-app-higher 并且里面有说 ...

  8. Fiddler使用一(Fiddler简介)

    参考文章:http://blog.csdn.net/ohmygirl/article/details/17846199 1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具fire ...

  9. Kafka 0.9 新特性

    Kafka发布0.9了,这一重磅消息,让小伙伴们激动不已,来看看这个版本有哪些值得关注的地方吧! 一.安全特性 在0.9之前,Kafka安全方面的考虑几乎为0,在进行外网传输时,只好通过Linux的防 ...

  10. 自己用的opensuse源

    utsc_oss               http://mirrors.ustc.edu.cn/opensuse/distribution/13.1/repo/oss/utsc_non_oss  ...