gpt4 book ai didi

javascript - 阿拉伯语 JavaScript 中的日期时间

转载 作者:行者123 更新时间:2023-12-01 15:39:59 29 4
gpt4 key购买 nike

我在 JavaScript 函数中遇到了问题

var tDate = new Intl.DateTimeFormat("ar-US", { 
day: 'numeric',
month: 'long',
year: 'numeric'
}).format(Date.now()) +
'\xa0\xa0/ \xa0' +
new Intl.DateTimeFormat("ar-FR-u-ca-islamic", {
day: 'numeric',
month: 'long',
year: 'numeric'
}).format(Date.now());

console.log(tDate);

阿拉伯语的输出是:2020 年 4 月 11 日 1441 年

英语:2020 年 4 月 5 日/伊斯兰历 1441 年沙类 12

阿拉伯语有什么问题,为什么数字 4 向左移动了??

最佳答案

使用 Intl 对象的日期格式化输出在不同实现中不一定一致。对我来说,OP 代码在不同的浏览器中会产生不同的结果:

  • Safari:٦ أبريل، ٢٠٢٠/١٣ شعبان، ١٤٤١
  • Firefox:٦ أبريل ٢٠٢٠/١٣ شعبان ١٤٤١ هـ
  • Chrome:2020 年 6 月/13 年 1441 年

它们在格式或字符上都不完全相同。

如果您想确保组件按您想要的顺序排列,请使用 formatToParts ,收集零件然后按您想要的顺序输出它们。只需确保结果明确无误(例如,像您所做的那样使用月份名称)。

let partsHeg = new Intl.DateTimeFormat('ar-FR-u-ca-islamic', {
day: 'numeric',
month: 'long',
year: 'numeric'
}).formatToParts(Date.now());

partsHeg.forEach(part => {
if (part.type != 'literal') {
console.log(part.type + ': ' + part.value);
}
});

let partsGre = new Intl.DateTimeFormat('ar-US', {
day: 'numeric',
month: 'long',
year: 'numeric'
}).formatToParts(Date.now());

partsGre.forEach(part => {
if (part.type != 'literal') {
console.log(part.type + ': ' + part.value);
}
});

关于javascript - 阿拉伯语 JavaScript 中的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61042169/

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