toLocaleString() 方法的奇怪行为

Strange behavior of toLocaleString() method

我对 toLocaleString 方法的奇怪行为有点困惑。请问有人可以帮忙修一下吗

例如下一个代码工作正确:

let value = "2018-11-26T10:00:00.000Z";
let dateValue = new Date(value).toLocaleString('ru-RU');
console.log(dateValue); // return: 26.11.2018, 16:00:00

这段代码return奇怪的结果:

let value = "2018-11-26T10:00:00.000Z";
let dateValue = new Date(value);
let newDateValue = dateValue.setMonth(dateValue.getMonth() + 1).toLocaleString('ru-RU');
console.log(newDateValue); // return: 1 545 818 400 000

我预计结果会是 26.12.2018, 16:00:00

setMonth() is a number, not a Date 的 return 值。只需使用变异的 dateValue 代替:

let value = "2018-11-26T10:00:00.000Z";
let dateValue = new Date(value);

dateValue.setMonth(dateValue.getMonth() + 1);

let newDateValue = dateValue.toLocaleString('ru-RU');

console.log(newDateValue); // return: 26.12.2018, 16:00:00