JS获取月份最后天数、最大天数与某日周数的方法


Posted in Javascript onDecember 08, 2015

本文实例讲述了JS获取月份最后天数、最大天数与某日周数的方法。分享给大家供大家参考,具体如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>标题页</title>
<script language="javascript">
function getLastDay(year,month)
{
 var new_year = year;  //取当前的年份
 var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)
 if(month>12)      //如果当前大于12月,则年份转到下一年
 {
 new_month -=12;    //月份减
 new_year++;      //年份增
 }
 var newnew_date = new Date(new_year,new_month,1);//取当年当月中的第一天
 return (new Date(new_date.getTime()-1000*60*60*24)).getDate();//获取当月最后一天日期
}
</script>
<body>
  <input id="Button1" type="button" value="取2007年5月的最后一天" onClick="alert(getLastDay(2007,5))" />
</body>
</html>

js得到一个月最大天数
 
JS里 面的new Date("xxxx/xx/xx")这个日期的构造方法有一个妙处,
当你传入的是"xxxx/xx/0"(0号)的话,得到的日期是"xx"月的前一个 月的最后一天("xx"月的最大取值是69,题外话),
当你传入的是"xxxx/xx/1"(1号)的话,得到的日期是"xx"月的后一个 月的第一天(自己理解)
如果传入"1999/13/0",会得到"1998/12/31"。而且最大的好处是当你传入"xxxx/3/0",会得到xxxx年2月的最后一天,它会自动判断当年是否是闰年来返回28或29,不用自己判断,
所以,我们想得到选择年选择月有多少天的话,只需要

var temp=new Date("选择年/选择月+1/0");
return temp.getDate()//最大天数

校验的话,也可以用这个方法。

下面是使用JS编写的获取某年某月有多少天的getDaysInMonth(year, month)方法:

function getDaysInMonth(year,month){
   month = parseInt(month,10)+1;
   var temp = new Date(year+"/"+month+"/0");
   return temp.getDate();
}

js 获取某年的某天是第几周

/**
 * 判断年份是否为润年
 *
 * @param {Number} year
 */
function isLeapYear(year) {
  return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
}
/**
 * 获取某一年份的某一月份的天数
 *
 * @param {Number} year
 * @param {Number} month
 */
function getMonthDays(year, month) {
  return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] || (isLeapYear(year) ? 29 : 28);
}
 /**
 * 获取某年的某天是第几周
 * @param {Number} y
 * @param {Number} m
 * @param {Number} d
 * @returns {Number}
 */
function getWeekNumber(y, m, d) {
  var now = new Date(y, m - 1, d),
    year = now.getFullYear(),
    month = now.getMonth(),
    days = now.getDate();
  //那一天是那一年中的第多少天
  for (var i = 0; i < month; i++) {
    days += getMonthDays(year, i);
  }
  //那一年第一天是星期几
  var yearFirstDay = new Date(year, 0, 1).getDay() || 7;
  var week = null;
  if (yearFirstDay == 1) {
    week = Math.ceil(days / yearFirstDay);
  } else {
    days -= (7 - yearFirstDay + 1);
    week = Math.ceil(days / 7) + 1;
  }
  return week;
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript的并行运算实现代码
Nov 19 Javascript
web基于浏览器的本地存储方法应用
Nov 27 Javascript
查看大图功能代码jquery版
Nov 05 Javascript
利用了jquery的ajax实现二级联互动菜单
Dec 02 Javascript
去除字符串左右两边的空格(实现代码)
May 12 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
Aug 16 Javascript
JQuery validate 验证一个单独的表单元素实例
Feb 17 Javascript
Angular2数据绑定详解
Apr 18 Javascript
security.js实现的RSA加密功能示例
Jun 06 Javascript
vue项目中实现的微信分享功能示例
Jan 21 Javascript
Vue Element plus使用方法梳理
Dec 24 Vue.js
AngularJS Module方法详解
Dec 08 #Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
Dec 08 #Javascript
JS与jQ读取xml文件的方法
Dec 08 #Javascript
js实现select下拉框菜单
Dec 08 #Javascript
基于jQuery 实现bootstrapValidator下的全局验证
Dec 07 #Javascript
JavaScript的代码编写格式规范指南
Dec 07 #Javascript
JSON遍历方式实例总结
Dec 07 #Javascript
You might like
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
js 蒙版进度条(结合图片)
2010/03/10 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
jQuery遍历Form示例代码
2013/09/03 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
9种python web 程序的部署方式小结
2014/06/30 Python
python读取二进制mnist实例详解
2017/05/31 Python
Python实现随机爬山算法
2021/01/29 Python
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
大专学生推荐信范文
2013/11/19 职场文书
医学专业大学生求职信
2014/07/12 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
颐和园英文导游词
2015/01/30 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
angular4实现带搜索的下拉框
2022/03/25 Javascript
使用MybatisPlus打印sql语句
2022/04/22 SQL Server