日期fns格式未本地化数字



我想将时间字符串转换为阿拉伯语。例如,我想将10:00 PM转换为مساءاً ١٠:٠٠。我将format函数与locale一起使用。

import ar from 'date-fns/locale/ar-SA'
...
str = format(date, 'h:mm a', {locale: ar})

但它给出了一个类似10:00 م的字符串。基本上数字不会被翻译。

You can try with this logic
const mappedDigit = (char: string): string => {
switch (char) {
case '0':
return '٠';
case '1':
return '١';
case '2':
return '٢';
case '3':
return '٣';
case '4':
return '٤';
case '5':
return '٥';
case '6':
return '٦';
case '7':
return '٧';
case '8':
return '٨';
case '9':
return '٩';
default:
return char;
}
};
const getArabicFormats = (englishString: string): string => {
let newArabicString = '';
for (let i = 0; i < englishString.length; i += 1) {
newArabicString += mappedDigit(englishString[i]);
}
newArabicString = newArabicString.replace('AM', 'ص');
newArabicString = newArabicString.replace('PM', 'م');
return newArabicString;
};

最新更新