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(js)设置默认输入焦点(focus)
Dec 28 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
Dec 31 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
Feb 25 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
Mar 19 Javascript
JS实现向表格中动态添加行的方法
Mar 30 Javascript
基于jQuery实现响应式圆形图片轮播特效
Nov 25 Javascript
js文本框输入内容智能提示效果
Dec 02 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
Aug 24 Javascript
jquery判断页面网址是否有效的两种方法
Dec 11 Javascript
vuex进阶知识点巩固
May 20 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
May 17 jQuery
关于JS中的作用域中的问题思考分享
Apr 06 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
坏狼的PHP学习教程之第2天
2008/06/15 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
php 数组的一个悲剧?
2011/05/11 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
浅析JavaScript动画
2015/06/10 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
一篇不错的Python入门教程
2007/02/08 Python
python中去空格函数的用法
2014/08/21 Python
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
2014自荐信的写作技巧
2014/01/28 职场文书
师德师风建设方案
2014/05/08 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书