当月获取最后一天&&上个月日期

本文介绍了一个JavaScript函数,该函数用于计算并返回指定年月的最后一天的日期。此外,还展示了如何获取当前月份及上个月的具体日期。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
 </head>

 <body>
  <script>  
	//获取当月最后一天日期 
	function getLastDay(year,month)   
	{   
	 var new_year = year;    //取当前的年份   
	 var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)   
	 if(month>12)            //如果当前大于12月,则年份转到下一年   
	 {   
	  new_month -=12;        //月份减   
	  new_year++;            //年份增   
	 }   
	 var new_date = new Date(new_year,new_month,1);                //取当年当月中的第一天   
	 alert(new_date.getTime());
	 return (new Date(new_date.getTime()-1000*60*60*24)).getDate();//获取当月最后一天日期   

	}
	//获取当前月日期起始
	var date = new Date();
	year = date.getYear();
	month = date.getMonth()+1;
	//获取当前月上月日期
	date.setMonth(date.getMonth()-1); 
	lastDateOfYear = date.getYear();
	lastDateOfMonth = date.getMonth()+1;

	alert(year+"-"+month+"-"+getLastDay(year,month));
	alert(lastDateOfYear+"-"+lastDateOfMonth+"-"+"1");
	</script>
 </body>
</html>

 

 

要使用 JavaScript 获取指定日期上个月最后一天,可以通过 `Date` 对象的相关方法实现。具体来说,可以先将日期设置为当前指定日期的月份的第一天,然后将日期减 1 天,这样即可得到上个月最后一天。以下是一个实现示例: ```javascript function getLastDayOfPreviousMonth(date) { const targetDate = new Date(date); // 创建一个副本以避免修改原始日期 targetDate.setDate(1); // 设置为当月的第一天 targetDate.setMonth(targetDate.getMonth() - 1); // 将月份减去1,变为上个月 targetDate.setDate(0); // 设置日期为0,即上个月最后一天 return targetDate; } // 示例:获取2023年10月的上个月(即9月)的最后一天 const specificDate = new Date('2023-10-15'); const lastDayOfPreviousMonth = getLastDayOfPreviousMonth(specificDate); console.log(lastDayOfPreviousMonth); // 输出:Sun Sep 30 2023 00:00:00 GMT+0000 (UTC) ``` 上述代码中,`setDate(0)` 是关键操作,它会将日期设置为上个月最后一天。这种方法可以灵活地处理任意指定日期,并且能够正确应对闰年等特殊情况。 ### 使用场景 这种方法适用于需要动态计算日期的场景,例如生成日历、安排任务或处理时间范围的数据。它也可以与现代日期库(如 Day.js 或 Luxon)结合使用,以获得更简洁的语法和更强大的功能。 ### 扩展用法 如果使用 [Day.js](https://day.js.org/) 等轻量级日期库,可以利用其 `subtract` 和 `endOf` 方法实现更简洁的代码: ```javascript const dayjs = require('dayjs'); const getLastDayOfPreviousMonthWithDayjs = (date) => { return dayjs(date).subtract(1, 'month').endOf('month'); }; // 示例调用 const result = getLastDayOfPreviousMonthWithDayjs('2023-10-15'); console.log(result.format('YYYY-MM-DD')); // 输出:2023-09-30 ``` 这种方法利用了 Day.js 的链式调用特性,先减去一个月,再通过 `endOf('month')` 获取该月的最后一天[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值