上个月最后一天的javascript日期

上个月最后一天的javascript日期,javascript,Javascript,假设我有3个这样的变量: var Month = 8; // in reality, it's a parameter provided by some user input var Year = 2011; // same here var FirstDay = new Date(Year, Month, 1); 现在,我想在一个变量中得到一个月的第一天之前的一天的值。我正在这样做: var LastDayPrevMonth = (FirstDay.getDate() - 1); 它没有按

假设我有3个这样的变量:

var Month = 8; // in reality, it's a parameter provided by some user input
var Year = 2011; // same here
var FirstDay = new Date(Year, Month, 1);
现在,我想在一个变量中得到一个月的第一天之前的一天的值。我正在这样做:

var LastDayPrevMonth = (FirstDay.getDate() - 1);
它没有按计划工作。做这件事的权利是什么


谢谢。

创建一个新的
Date
对象,并将强制的另一个日期传递给该对象,以毫秒为单位,然后减去一整天(以毫秒为单位)

示例:

var月=8;//实际上,它是由一些用户输入提供的参数
风险值年份=2011年;//彼此彼此
var FirstDay=新日期(年、月、1);
var LastDayPrevMonth=新日期(第一天-864e5);
document.body.innerHTML=LastDayPrevMonth

记住,在JavaScript中,8是9月,而不是8月

如果您需要根据今天的日期(您想要上个月的最后一天)计算此值,以下内容应该会有所帮助

如果你只关心月/日/年,这是我能想到的最简单、最快的方法:

var d = new Date(); d.setDate(0);
console.log(d);
如果您想要上个月最后一天的午夜,则:

var d = new Date(); d.setDate(0); d.setHours(0,0,0,0);
console.log(d);
如果您想知道上个月的最后一天,根据提供的年/月:

var year = 2016, month = 11;
var d = new Date(year, (month - 1)); d.setDate(0); d.setHours(0,0,0,0);
console.log(d);
运行上述任一操作后,要获取YYYY-M-D格式:

var str = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
console.log(str);

要查看可用的其他方法,并查看它们的作用,您可以。

按说明执行。我去掉了加号。常数等于多少?一天几秒钟?@renchie:一天几毫秒。是的,当使用
-
作为操作符时,你不需要
+
:)@frenchie-我认为William Van Rensselaer的答案更好-只需将日期设置为零,就可以得到上个月的最后一天。@RobG:我同意,我不知道将其设置为
0
就可以了。然后删除
.getDate()
。getDate返回一个月的哪一天。看起来这就是你想问的问题。
var d = new Date(); d.setDate(0);
console.log(d);
var d = new Date(); d.setDate(0); d.setHours(0,0,0,0);
console.log(d);
var year = 2016, month = 11;
var d = new Date(year, (month - 1)); d.setDate(0); d.setHours(0,0,0,0);
console.log(d);
var str = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
console.log(str);