date-fns的格式化无法本地化数字。

3

我想将时间字符串转换为阿拉伯语。例如,我想将10:00 PM转换为مساءاً ١٠:٠٠。我正在使用带有localeformat函数。

import ar from 'date-fns/locale/ar-SA'
...

str = format(date, 'h:mm a', {locale: ar})

但是它会给出这样的字符串10:00 م。基本上数字没有被翻译。


同样的问题... - Battlelamb
1个回答

0
    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;
};


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接