javascript日期前一个月的最后一天
问题描述:
比方说,我有3个变量是这样的:javascript日期前一个月的最后一天
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);
按计划它不工作。做这件事的权利是什么?
谢谢。
答
var LastDayPrevMonth = new Date(Year, Month, 0).getDate();
答
创建一个新的Date
对象,并将其他日期强制转换为自Unix epoch以来的毫秒数,然后减去一整天(以毫秒为单位)。
var LastDayPrevMonth = new Date(FirstDay - 864e5);
答
var LastDayPrevMonth = new Date(FirstDay);
LastDayPrevMonth.setHours(FirstDay.getHours()-24);
答
var FirstDay = new Date(Year, Month, 1);
var lastMonth = new Date(FirstDay);
lastMonth.setDate(-1);
alert(lastMonth);
请记住,8九月,在JavaScript中不AUG。 :)
答
如果您需要根据今天的日期来计算这个(您想上个月的最后一天),以下应该有所帮助。
如果你只在乎月/日/年,这是我能想到的最简单和最快的:
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。
此函数返回日期的一天,但不返回日期本身:31,28,31 .. – frenchie
然后,只需删除'.getDate()'。 getDate返回月份的一天。它看起来就是你想要的问题。 – Will