javascript - toLocaleString() 方法的奇怪行为

标签 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

最佳答案

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/

相关文章:

javascript - jQuery 组合函数

javascript - Twitter Bootstrap TypeAhead 与具有自动完成功能的下拉列表/选择标签一样工作

java - 使用 DateUtils 类的 parseDateStrictly() 方法时出现异常无法解析日期

linux 语言环境未设置

javascript - 延迟jquery中的语句?

javascript - iPad Web 应用程序 - 主屏幕图标未更新

Mysql 修改表日期不为空

database - 如何在 postgreSQL 中插入日期序列

java - new 关键字的本地使用

regex - 语言环境何时会影响 R 的正则表达式?