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 相关文章推荐
jQuery使用手册之二 DOM操作
Mar 24 Javascript
jquery实现盒子下拉效果示例代码
Sep 12 Javascript
jQuery之Deferred对象详解
Sep 04 Javascript
JavaScript判断是否为数组的3种方法及效率比较
Apr 01 Javascript
JavaScript使用cookie记录临时访客信息的方法
Apr 07 Javascript
vue实现可增删查改的成绩单
Oct 27 Javascript
Javascript 普通函数和构造函数的区别
Nov 05 Javascript
vue插件vue-resource的使用笔记(小结)
Aug 04 Javascript
React-Native 组件之 Modal的使用详解
Aug 08 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
Jun 18 jQuery
layui实现图片虚拟路径上传,预览和删除的例子
Sep 25 Javascript
Element Badge标记的使用方法
Jul 27 Javascript
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作的文本留言本的例子(五)
2006/10/09 PHP
模仿OSO的论坛(一)
2006/10/09 PHP
php中$this-&amp;gt;含义分析
2009/11/29 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
利用php生成验证码
2017/02/23 PHP
php显示页码分页类的封装
2017/06/08 PHP
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
python求crc32值的方法
2014/10/05 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
Python3分析处理声音数据的例子
2019/08/27 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
服装行业创业计划书范文
2014/02/05 职场文书
应用数学专业求职信
2014/03/14 职场文书
体育教师求职信
2014/05/24 职场文书
班级团队活动方案
2014/08/14 职场文书
中秋客户感谢信
2015/01/22 职场文书
创业计划书之家教托管
2019/09/25 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android