javascript上个月最后一天的日期

时间:2011-09-19 03:16:58

标签: 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);

它没有按计划运作。这样做的权利是什么?

感谢。

5 个答案:

答案 0 :(得分:14)

var LastDayPrevMonth = new Date(Year, Month, 0).getDate();

答案 1 :(得分:1)

var LastDayPrevMonth = new Date(FirstDay);
LastDayPrevMonth.setHours(FirstDay.getHours()-24);

答案 2 :(得分:0)

创建一个新的Date对象,并将其他日期强制传递给自Unix epoch以来的毫秒数,然后减去一整天(以毫秒为单位)。

var LastDayPrevMonth = new Date(FirstDay - 864e5);

jsFiddle

答案 3 :(得分:0)

var FirstDay = new Date(Year, Month, 1);
var lastMonth = new Date(FirstDay);
lastMonth.setDate(-1);
alert(lastMonth);

请记住,8是9月,而不是8月的JavaScript。 :)

答案 4 :(得分:0)

如果您需要根据今天的日期(您希望上个月的最后一天)计算出来,则以下情况应该有所帮助。

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

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

要查看其他可用方法,并了解它们的作用,您可以read the docs