我正在使用以下代码,其中月份是当月(我在哪里):
lastDayOfLastMonth = month === 0 ? new Date(year - 1, 11, 0).getDate() : new Date(year, month, 0).getDate();
这个想法,如果我在一年的第一个月,上一个月是去年的最后一个月。
如果我在2018年1月,报道2017年12月最后一天是30,这不是真的,那是31,但我不知道为什么。
答案 0 :(得分:1)
<IngredientList items={ingredient.items} />
构造函数的日期部分不是0索引,而是该月的实际日期。在您的第一个条件Date
中,您将首先将您的日期初始化为2017年12月0日。日期构造函数会将此更正为2017年11月30日。
如果您想要上个月的最后一天,可以忽略三元运算符并执行以下操作,因为new Date(year - 1, 11, 0).getDate()
构造函数将进行必要的转换:
Date
请注意,lastDayOfLastMonth = new Date(currentYear, currentMonth, 0).getDate();
仍然是0索引(即1月是0月,12月是11月)
答案 1 :(得分:0)
也会给你想要的结果
var LastDay = new Date(year-1, 12, 0);
//new Date(year - 1, 11, 0).getDate() this line seems issue in your code
这个对我来说将于2017年12月31日回归
var month = 0;//this you will get when do dt.getMonth() in January month
var year = 2018;
var LastDay = new Date(year, month, 0);
document.getElementById("demo").innerHTML = LastDay;
试试这个为我工作
var dt = new Date();
var month = dt.getMonth();
var year = 2018;
var LastDay = new Date(year, month, 0);
console.log(LastDay);
答案 2 :(得分:0)
var d = new Date();
var n = d.getMonth();
// first month
if(n == 0){
console.log(new Date(new Date().getFullYear(), 11, 31).getDate());
}
答案 3 :(得分:0)
请改为尝试:
lastDayOfLastMonth = month === 0 ? new Date(year - 1, 12, 0).getDate():
new Date(year, month, 0).getDate();