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

 更新时间:2015年12月08日 09:28:02   作者:fox123871  
这篇文章主要介绍了JS获取月份最后天数、最大天数与某日周数的方法,涉及JavaScript针对日期与实现的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • 前端如何解决滚动穿透问题详解

    前端如何解决滚动穿透问题详解

    这篇文章主要介绍了前端解决滚动穿透问题的五种常见方法,并详细分析了它们的优缺点和适用场景,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • 浅析如何使用JavaScript轻松实现数据转换

    浅析如何使用JavaScript轻松实现数据转换

    这篇文章主要为大家详细介绍了如何使用JavaScript轻松实现数据转换,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10
  • 防止video视频被下载的处理方法汇总

    防止video视频被下载的处理方法汇总

    这篇文章主要介绍了防止video视频被下载的处理方法汇总,本文给大家介绍了多种方法帮助大家解决防止video视频被下载的问题,补充介绍了解决video标签视频禁止下载方法,感兴趣的朋友一起看看吧
    2024-02-02
  • antd组件Upload实现自己上传的实现示例

    antd组件Upload实现自己上传的实现示例

    这篇文章主要介绍了antd组件Upload实现自己上传的实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 前端实现图片或视频预览的三种方法总结

    前端实现图片或视频预览的三种方法总结

    在JavaScript中实现前端图片上传即时预览功能是一项常见的需求,特别是在网页交互设计中,这篇文章主要给大家介绍了关于前端实现图片或视频预览的三种方法,需要的朋友可以参考下
    2024-06-06
  • javascript 拖动表格行实现代码

    javascript 拖动表格行实现代码

    用js实现的拖动表格的tr行的实现代码,需要的朋友可以参考下。
    2011-05-05
  • uni-app h5端在jenkins构建报错解决

    uni-app h5端在jenkins构建报错解决

    这篇文章主要为大家介绍了uni-app h5端在jenkins构建报错解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • window.open关于浏览器拦截问题分析及解决方法

    window.open关于浏览器拦截问题分析及解决方法

    window.open是javascript函数,该函数的作用是打开一个新窗口或这改变原来的窗口,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会拦截你,那么如何避免呢,感兴趣的朋友可以了解下本文或许对你学习有所帮助
    2013-02-02
  • Three.js如何实现雾化效果示例代码

    Three.js如何实现雾化效果示例代码

    雾化效果是3D的比较常见的特性,在游戏中见到的烟雾、爆炸火焰以及白云等效果都是雾化的结果,下面这篇文章主要给大家介绍了关于Three.js如何实现雾化效果的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • JavaScript实现文本相似度对比

    JavaScript实现文本相似度对比

    这篇文章主要介绍了JavaScript实现文本相似度对比,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06

最新评论