JS获取月的最后一天与JS得到一个月份最大天数

原文链接:http://www.jb51.net/article/44468.htm

一、获取一个月份的最后一个天(可能是28/29/30/21)问题,思想很简单,就是先获取下个月的第一天离1970年的毫秒数,然后减去一天时间的毫秒数,就是这个月的最后一天离1970年的毫秒数,根据这个毫秒数计算即可。代码如下:

<html>   
<head>   
<title>标题页</title>   
<script language="javascript">   
function getLastDay(year,month)   
{   
 var new_year = year;  //取当前的年份   
 var new_month = ++month;//取下一个月的第一天,方便计算(最后一天不固定)   
 if(month>11)      //如果当前大于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>  

二、J s得到一个月最大天数

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();
 }

用javascript获取某月天数方法如下:

目标:获取2014/4月份的天数


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

说明:OK,你想要的天数已经出来了。getDate()是获取的最后一天,就是当月的天数 注:我们在构造日期对象时,4其实是实际构造的5月份,因为月份是从0开始的。而第三个数0天数,要求最小是1号,比1号小的话,就成了你要的3月最后那一天了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取当前月份的第一天最后一天的时间戳,可以使用 JavaScript 的 Date 对象,结合 `getTime()` 方法。具体的代码如下所示: ```javascript const now = new Date(); // 获取当前时间 const year = now.getFullYear(); // 年份 const month = now.getMonth() + 1; // 月份,注意要加 1 const firstDay = new Date(year, month - 1, 1); // 当前月份的第一天 const lastDay = new Date(year, month, 0); // 当前月份最后一天 const firstDayTimestamp = firstDay.getTime(); // 当前月份的第一天的时间戳 const lastDayTimestamp = lastDay.getTime(); // 当前月份最后一天的时间戳 console.log(`当前月份的第一天的时间戳:${firstDayTimestamp}`); // 输出:当前月份的第一天的时间戳:1633046400000 console.log(`当前月份最后一天的时间戳:${lastDayTimestamp}`); // 输出:当前月份最后一天的时间戳:1635638399999 ``` 在上面的代码中,我们首先使用 `new Date()` 获取当前时间,然后通过 `getFullYear()` 和 `getMonth()` 方法获取当前的年份和月份。接着,我们使用 `new Date(year, month - 1, 1)` 创建了一个新的 Date 对象,其中 `year` 和 `month - 1` 分别表示年份和月份,`1` 表示天数,即当前月份的第一天。同样地,我们使用 `new Date(year, month, 0)` 创建了另一个 Date 对象,其中 `year` 和 `month` 分别表示年份和月份,`0` 表示天数,即当前月份最后一天最后,我们使用 `getTime()` 方法获取了当前月份的第一天最后一天的时间戳,并输出到控制台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值