برای نمایش عدد و تاریخ فارسی لازم نیست حتماً کتابخانهٔ جداگانه نصب کنید. شیء Intl که در مرورگرها و Node وجود دارد، بخش بزرگی از کار را انجام می‌دهد.

عدد و پول

const n = 1234567.89;

new Intl.NumberFormat("fa-IR").format(n);
// ۱٬۲۳۴٬۵۶۷٫۸۹

new Intl.NumberFormat("fa-IR", {
  style: "currency",
  currency: "IRR",
  maximumFractionDigits: 0,
}).format(250000);

تاریخ شمسی

const d = new Date();

new Intl.DateTimeFormat("fa-IR", {
  dateStyle: "long",
}).format(d);
// مثلاً: ۱۲ آبان ۱۴۰۵

new Intl.DateTimeFormat("fa-IR", {
  dateStyle: "medium",
  timeStyle: "short",
}).format(d);

محلی fa-IR به‌طور پیش‌فرض تقویم شمسی را استفاده می‌کند. اگر تقویم میلادی با ارقام فارسی می‌خواهید، fa-IR-u-ca-gregory را بدهید.

زمان نسبی

const rtf = new Intl.RelativeTimeFormat("fa", { numeric: "auto" });

rtf.format(-1, "day");  // دیروز
rtf.format(-3, "hour"); // ۳ ساعت پیش
  • فرمت‌کننده‌ها را یک‌بار بسازید و دوباره استفاده کنید؛ ساختنشان در هر رندر پرهزینه است.
  • برای خروجی‌های مهم (فاکتور، گزارش) خروجی را در مرورگرهای هدف خودتان بررسی کنید.