如果Java语言setMonth方法用于31日,它似乎无法正确更改月份。
var event = new Date('July 31, 2018 10:48:30');
console.log(event.getMonth());
// output: 6
// Change to previous month
event.setMonth(event.getMonth() - 1);
console.log(event.getMonth());
// expected output: 5 actual output: 6
console.log(event);
是否有更好的选择来更改月份并将日期设置为30号(如果该月份不是31号)?
答案 0 :(得分:2)
let previous = event.getMonth();
while(event.getMonth() === previous)
event.setDate(event.getDate() - 1);
每天都回去。
答案 1 :(得分:1)
是否有更好的选择来更改月份并将日期设置为30号(如果该月份不是31号)?
就在前一天:
var event = new Date('July 31, 2018 10:48:30');
console.log(event.getMonth());
// Change to previous month
var current = event.getMonth();
event.setMonth(current - 1);
if (event.getMonth() === current) {
event.setDate(event.getDate() - 1);
}
console.log(event.getMonth());
// actual output: 5
console.log(event);