我期待31,因为这个月10月有31天,我的代码中哪部分错了?
function lastDayOfMonth(given_month) {
var d = new Date();
d.setDate(0);
d.setMonth(given_month);
return d.toISOString();
}
console.log(lastDayOfMonth(given_month))
2016-10-30T13:16:14.227Z
答案 0 :(得分:1)
d.setDate(0);
将日期设置为上个月的最后一天。即如果您在十月份运行此脚本,则日期将设置为9月30日。
之后你运行
d.setMonth(given_month);
设置月份,但保留月份的日期。我假设given_month是9(即10月),所以这将导致10月30日。
有关详细信息,请参阅https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate。
答案 1 :(得分:1)
given_month = 10;
function lastDayOfMonth(given_month) {
var d = new Date();
d.setDate(15);
d.setMonth(given_month);
d.setDate(0)
return d.toISOString();
}
console.log(lastDayOfMonth(given_month)) // 2016-10-30T13:16:14.227Z
Expl:今天是31,所以,新的日期设置为31天;当你将月份设置为10(11月)时,白天仍然是31天,但11月只有30天,因此错误。
答案 2 :(得分:0)
setDate(0)将产生上个月的最后一天