如何解决date.toLocaleDateString 与区域设置阿拉伯语的转换在 Chrome 和 firefox 中产生不同的结果
我有一个使用 date.toLocaleDateString 格式化日期的函数 我发现当我将语言环境设置为“阿拉伯语”时,Chrome 中的结果与 FF 和 Safari 中的结果不同。
let date = new Date();
const dateOptions = {
day: "2-digit",month: "2-digit",year: "numeric"
};
console.log(date.toLocaleDateString("ar",dateOptions));
这是代码沙盒链接 https://codesandbox.io/s/loving-haslett-mj6b0?file=/src/index.js
在 chrome 中,日期显示为 27 /01 /2021,而在 FF 和 Safari 中,它被转换为阿拉伯语。
我们如何确保跨浏览器的一致性?
解决方法
尝试使用 ar-eg
而不是 ar
:
console.log(date.toLocaleDateString("ar-eg",dateOptions));
但请记住,toLocaleDateString
实现始终取决于应用程序,此外还有一些浏览器未实现 locale
/option
参数。
您可以使用以下功能检查语言和选项支持:
function dateSupportsLocales(language) {
try {
new Date().toLocaleDateString(language);
} catch (e) {
return e.name !== 'RangeError';
}
return true;
}
function dateSupportsOptions() {
try {
new Date().toLocaleDateString('en',{});
return true;
}
catch (e) { }
return false;
}
另请查看 Date.prototype.toLocaleDateString
MDN Reference 以获取更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。