我对 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
最佳答案
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
关于javascript - toLocaleString() 方法的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53950627/