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