gpt4 book ai didi

javascript - Intl.DateTimeFormat 产生错误的格式

转载 作者:行者123 更新时间:2023-11-29 23:42:21 25 4
gpt4 key购买 nike

在当前的 Chrome、Firefox 和 Safari 中,Intl.DateTimeFormat 区域设置 it-CH(瑞士的意大利语部分)是错误的:

new window.Intl.DateTimeFormat('it-CH').format(new Date()) // -> "6/7/2017"
new window.Intl.DateTimeFormat('fr-CH').format(new Date()) // -> "06.07.2017"
new window.Intl.DateTimeFormat('de-CH').format(new Date()) // -> "06.07.2017"

第一行的输出是错误的。在瑞士的所有地区,格式应为“dd.mm.yyyy”

有趣的是,IE11 和 Edge 为上述代码段生成了正确的输出。

修复/修补/覆盖给定浏览器中 window.Intl 错误实现的最佳方法是什么?

最佳答案

不确定最好但最简单的应该是这样的:

var nativeDateTimeFormat = window.Intl.DateTimeFormat;
window.Intl.DateTimeFormat = function(locale) {
var native = nativeDateTimeFormat(locale);
if (locale === 'it-CH') {
native.format = function() {
return nativeDateTimeFormat('fr-CH').format();
}
}
return native;
}

此解决方案利用了 fr-CH 具有 it-CH 应具有的正确格式这一事实。

关于javascript - Intl.DateTimeFormat 产生错误的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44973627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com