如何使用RelativeTimeFormat.formatToParts?

时间:2019-07-09 11:47:59

标签: javascript internationalization

我希望能够在我的网站上列出一段时间。类似于“页面生成时间:2秒”。意识到国际化之后,我自然希望以最了解区域设置的方式来做到这一点。

relative time format API听起来很完美,只是它构造了诸如“ in 2 seconds”或“ 2 seconds ago”之类的字符串。 formatToParts函数为我很好地分割了字符串,但是它将“ seconds”和“ in / ago”都标记为“ literal”,而没有指示哪个是哪个。

我敢肯定,语言上的差异意味着我不能依靠“ in”等价词作为第一个单词,甚至一个单词。有什么方法可以使用formatToParts提取字符串中除数字以外的任何部分? (无论如何,我都可以使用NumberFormat吗?)

1 个答案:

答案 0 :(得分:0)

这可能对每个人都没有帮助,但就我个人而言,我不是使用相对时间格式 API,而是使用数字格式 API 来解决这个用例。

const secondsToString = Intl.NumberFormat(navigator.languages, {
  style: "unit",
  unit: "second",
  unitDisplay: "long"
}).format;
console.log(secondsToString(2.42));