Intl.RelativeTimeFormat
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2020å¹´9æ.
Intl.RelativeTimeFormat ãªãã¸ã§ã¯ãã¯è¨èªã«ä¾åã®ç¸å¯¾æéã®æ¸å¼åãå¯è½ã«ãã¾ãã
試ãã¦ã¿ã¾ããã
const rtf1 = new Intl.RelativeTimeFormat("en", { style: "short" });
console.log(rtf1.format(3, "quarter"));
// Expected output: "in 3 qtrs."
console.log(rtf1.format(-1, "day"));
// Expected output: "1 day ago"
const rtf2 = new Intl.RelativeTimeFormat("es", { numeric: "auto" });
console.log(rtf2.format(2, "day"));
// Expected output: "pasado mañana"
ã³ã³ã¹ãã©ã¯ã¿ã¼
Intl.RelativeTimeFormat.RelativeTimeFormat()-
æ°ãã
Intl.RelativeTimeFormatãªãã¸ã§ã¯ããçæãã¾ãã
éçã¡ã½ãã
Intl.RelativeTimeFormat.supportedLocalesOf()-
æå®ããããã±ã¼ã«ã®ãã¡ãå®è¡æã®æ¢å®ã®ãã±ã¼ã«ã«ãã©ã¼ã«ããã¯ããã«å¯¾å¿ããããã®ãé åã«åãã¦è¿ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
Intl.RelativeTimeFormat.prototype.format()-
valueããã³unitããæå®ãããIntl.RelativeTimeFormatãªãã¸ã§ã¯ãã®ãã±ã¼ã«ã¨æ¸å¼åãªãã·ã§ã³ã«å¾ã£ã¦æ¸å¼åãã¾ãã Intl.RelativeTimeFormat.prototype.formatToParts()-
ãã±ã¼ã«åºæã®ã«ã¹ã¿ã ãã©ã¼ãããã«ä½¿ç¨å¯è½ãªç¸å¯¾æéã®ãã©ã¼ããããé¨åçã«è¡¨ç¾ãããªãã¸ã§ã¯ãã®
Arrayãè¿ãã¾ãã Intl.RelativeTimeFormat.prototype.resolvedOptions()-
ãªãã¸ã§ã¯ãã®åæåä¸ã«è¨ç®ããããã±ã¼ã«ããã©ã¼ãããã®ãªãã·ã§ã³ãåæ ããããããã£ãæã¤æ°ãããªãã¸ã§ã¯ããè¿ãã¾ãã
ä¾
>åºæ¬ç㪠format ã®ä½¿ç¨ä¾
以ä¸ã¯è±èªã®ç¸å¯¾æéãã©ã¼ããã¿ã¼ã®ä½¿ãæ¹ã®ä¾ã§ãã
// æç¤ºçã«æ¸¡ãããæ¢å®å¤ã使ã£ã¦
// ãã±ã¼ã«ã®ç¸å¯¾æéãçæãã¾ã
const rtf = new Intl.RelativeTimeFormat("en", {
localeMatcher: "best fit", // other values: "lookup"
numeric: "always", // other values: "auto"
style: "long", // other values: "short" or "narrow"
});
// è² æ°ã®å¤ (-1) ã使ã£ãç¸å¯¾æéã®ãã©ã¼ããã
rtf.format(-1, "day");
// > "1 day ago"
// æ£æ°ã®å¤ (1) ã使ã£ãç¸å¯¾æéã®ãã©ã¼ããã
rtf.format(1, "day");
// > "in 1 day"
formatToParts ã®ä½¿ç¨ä¾
以ä¸ã¯ãã©ã¼ããããããé¨åãè¿ãç¸å¯¾æéãã©ã¼ããã¿ã¼ã®çææ¹æ³ã®ä¾ã§ãã
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
// æ¥åä½ã®ç¸å¯¾æéãã©ã¼ããã
rtf.formatToParts(-1, "day");
// > [{ type: "literal", value: "yesterday"}]
rtf.formatToParts(100, "day");
// > [{ type: "literal", value: "in " },
// > { type: "integer", value: "100", unit: "day" },
// > { type: "literal", value: " days" }]
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Internationalization API Specification> # relativetimeformat-objects> |