toLocaleString()方法的奇怪行为

时间:2018-12-27 20:39:48

标签: javascript date locale string-formatting

我对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

此代码返回奇怪的结果:

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

1 个答案:

答案 0 :(得分:4)

setMonth()的返回值是一个数字,而不是Date。只需使用变异的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