【问题标题】:Chrome toLocaleDateString returning wrong formatChrome toLocaleDateString 返回错误的格式
【发布时间】:2017-11-30 09:06:29
【问题描述】:

在 Chrome 控制台上运行 (new Date()).toLocaleDateString() 正在返回 “2017 年 6 月 27 日”。我的浏览器语言和 PC 设置适用于英国。

在 Firefox 上,它返回 27/06/2017。我怎样才能在 Chrome 中实现同样的效果,或者这是一个错误?

我知道自己格式化日期的方法,但有没有办法让浏览器始终选择区域设置和格式 自己?

【问题讨论】:

  • 看来确实有区别。在我的系统上,Firefox 和 IE 似乎使用日期格式设置(设置为我自己的语言),而 Chrome 显然使用的是系统区域设置(设置为美国)。 IE和Firefox之间甚至不一致,IE显示27.06.2017而Firefox显示27.6.2017最简单的选项似乎是toLocaleDateString("uk")
  • 您是如何检查系统区域设置的?我的似乎设置为英语英国
  • 在 Win 7 上,转到控制面板 -> 区域和语言 -> 管理选项卡

标签: javascript google-chrome date-formatting


【解决方案1】:

根据特定语言约定表示给定 Date 实例的日期部分的字符串。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

为了确定返回值,可以叠加这个方法:

Date.prototype.toLocaleDateString = function () {
    return this.getDate() + "/" + (this.getMonth() + 1) + "/" this.getFullYear()
};

【讨论】:

  • 我知道格式化日期的方法,但有没有办法让浏览器始终选择语言环境并自行格式化?
【解决方案2】:

由于这个问题还没有得到回复,而且我发现它是因为这个问题在 Chrome 97 中仍然存在,所以这里有一个潜在的解决方案:

打开 Chrome 设置,然后打开高级 > 语言。 下拉语言部分。您现在可能会看到一些英语条目,例如“English (United Kingdom)”、“English”和“English (United Kingdom)”。 选择您想要的特定英语版本旁边的 3 个点,并确保选中“以该语言显示 Google Chrome”复选框。 如果您更改设置,请在系统提示时重新启动 Chrome。

对我来说,“英语”选项是预先选择的,这导致 Javascript 日期以美国格式显示。 “英国”选项在列表中排在第一位这一事实并没有任何区别。

【讨论】:

    猜你喜欢
    • 2014-05-08
    • 2020-06-12
    • 2022-01-21
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多