提问人:Rod 提问时间:12/18/2009 最后编辑:NoDataDumpNoContributionRod 更新时间:3/11/2023 访问量:63538
如何获取每月的最后一天
How to get last day of the month
答:
41赞
miku
12/18/2009
#1
function LastDayOfMonth(Year, Month) {
return new Date((new Date(Year, Month, 1)) - 1);
}
console.log(LastDayOfMonth(2009, 11))
例:
> LastDayOfMonth(2009, 11)
Mon Nov 30 2009 23:59:59 GMT+0100 (CET)
评论
1赞
RobG
6/14/2014
+1 但将时间设置为 23:59:59.999。也许最好将秒设置为 59.000,所以.:-)... Month, 1)) - 1000)
3赞
jcollum
3/17/2017
我无法想象为什么你要把 999ms 排除在范围计算之外
0赞
Tofandel
9/18/2019
同样,GMT 不守恒,在操作创建的日期对象时会得到奇怪的结果,请参阅 csukcc 答案以获取正确的实现
33赞
Chetan S
12/18/2009
#2
这将为您提供当月的最后一天。
var t= new Date();
alert(new Date(t.getFullYear(), t.getMonth() + 1, 0, 23, 59, 59));
评论
1赞
RobG
6/14/2014
不需要两个 Date 对象:。t.setMonths(t.getMonth()+1, 0, 23, 59, 59, 0)
1赞
CodingWeb
3/16/2019
请问getMonth()后面的数字是什么
0赞
Tofandel
9/18/2019
这不是一个正确的答案......GMT 不守恒
-1赞
yetAnotherSE
10/22/2012
#3
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
Date lastDayOfMonth = cal.getTime();
评论
9赞
Pedro
1/23/2013
这是你那里得到的一些奇怪的javascript。
0赞
Jay Dadhania
9/12/2018
问题是关于javascript的,而不是Java!这个答案应该被删除。
2赞
jare25
2/11/2013
#4
var d = new Date();
m = d.getMonth(); //current month
y = d.getFullYear(); //current year
alert(new Date(y,m,1)); //this is first day of current month
alert(new Date(y,m+1,0)); //this is last day of current month
评论
0赞
mickburkejnr
1/15/2014
我已经试过了,并给你下个月的最后一天。alert(new Date(y,m+1,0));
1赞
Jay Dadhania
9/12/2018
@mickburkejnr您可能想再次检查,我刚刚尝试过,它按预期工作。
7赞
csukcc
10/3/2013
#5
var d = new Date();
console.log(d);
d.setMonth(d.getMonth() + 1); // set month as next month
console.log(d);
d.setDate(0); // get the last day of previous month
console.log(d);
以下是上述代码的输出: Thu Oct 03 2013 11:34:59 GMT+0100 (GMT Daylight Time) Sun Nov 03, 2013 11:34:59 GMT+0000 (GMT Standard Time) Thu, Oct 31, 2013 11:34:
59 GMT+0000 (GMT Standard Time)
评论
0赞
Jared
9/21/2016
你可以通过将日期传递给这样来简化它:setMonth
d.setMonth(d.getMonth() + 1, 0)
1赞
johnw182
11/23/2022
这不会按照问题中的要求设置时间戳“11:59:59 PM”。
1赞
david
1/17/2014
#6
每月的最后一天
now = new Date
lastDayOfTheMonth = new Date(1900+now.getYear(), now.getMonth()+1, 0)
1赞
Sajin M Aboobakkar
12/17/2015
#7
var month = 1; // 1 for January
var d = new Date(2015, month, 0);
console.log(d); // last day in January
1赞
Nicolas Giszpenc
5/27/2017
#8
有时您所拥有的只是当月的文本版本,即:2017 年 4 月。
//first and last of the current month
var current_month = "April 2017";
var arrMonth = current_month.split(" ");
var first_day = new Date(arrMonth[0] + " 1 " + arrMonth[1]);
//even though I already have the values, I'm using date functions to get year and month
//because month is zero-based
var last_day = new Date(first_day.getFullYear(), first_day.getMonth() + 1, 0, 23, 59, 59);
//use moment,js to format
var start = moment(first_day).format("YYYY-MM-DD");
var end = moment(last_day).format("YYYY-MM-DD");
-1赞
Infomaster
9/19/2019
#9
不要忘记月份以 0 开头,所以月份也为 +1。
let enddayofmonth = new Date(year, month, 0).getDate();
0赞
johnw182
11/23/2022
#10
这些答案中的大多数都缺少一件事或另一件事。在玩了他们中的大多数人之后,我想出了以下内容,为您提供了本月的最后一毫秒。
let testDate = new Date();
console.log(getMonthEnd(testDate));
function getMonthEnd(value) {
return new Date(value.getFullYear(), value.getMonth() + 1, 0, 23, 59, 59, 999);
}
可能也缺少一些东西,但似乎涵盖了我的所有要求。
0赞
Erismeiris Hidalgo Reyes
3/11/2023
#11
我正在使用此代码来获取当月的最后一天
getLastDayOfMonth() {
const date = new Date()
const month = date.getMonth() + 1
const year = date.getFullYear()
return new Date(year, month, 0).getDate()
}
评论