تاریخ انتشار: 20 مارس 2025
یک بیت متداول از اطلاعاتی که ممکن است در یک صفحه وب ببینید، متنی است که می گوید چقدر تا یک رویداد خاص، یا چه مدت از زمان وقوع یک رویداد گذشته است. این معمولاً به صورت رشته ای نمایش داده می شود که مدت زمان را بر حسب ساعت، دقیقه، ثانیه یا سایر واحدهای مفید زمان ارتباط می دهد.
Intl.DurationFormat
یک ویژگی مفید است که این کار را برای شما در مرورگر انجام می دهد و در عین حال نیازهای بین المللی سازی را که ممکن است داشته باشید، بدون نیاز به جاوا اسکریپت اضافی محاسبه می کند. از مارس 2025، به تازگی در دسترس است.
Intl.DurationFormat
چگونه کار می کند
Intl.DurationFormat
کلاسی است که وقتی نمونه سازی می شود، رشته ای را برمی گرداند که مدت زمان را توصیف می کند. با تعیین یک شی حاوی کلیدها و مقادیری که مطابق با واحدهای زمانی است که می خواهید رشته ای برای آن تولید شود، کار می کند:
// Specify the duration:
const duration = {
years: 1,
hours: 20,
minutes: 15,
seconds: 35
};
// Output: '1 yr, 20 hr, 15 min, 35 sec'
new Intl.DurationFormat('en').format(duration);
برای برگرداندن یک رشته در قالب طولانی، مقدار 'long'
را به گزینه style
در آرگومان دوم سازنده ارسال کنید:
const duration = {
years: 1,
hours: 20,
minutes: 15,
seconds: 35
};
// Output: '1 year, 20 hours, 15 minutes, 35 seconds'
new Intl.DurationFormat('en', { style: 'long' }).format(duration);
تاکنون، این نمونهها رشتههایی را به زبان انگلیسی تولید میکنند. با توجه به اینکه این یک ویژگی بینالمللیسازی است، سودمندی واقعی آن این است که میتوانید در هر محلی معتبر ارسال کنید و رشتهها را به هر زبانی که نیاز دارید قالببندی کنید:
const duration = {
years: 1,
hours: 20,
minutes: 15,
seconds: 35
};
// Output: '1 Jahr, 20 Stunden, 15 Minuten und 35 Sekunden'
new Intl.DurationFormat('de', { style: 'long' }).format(duration);
// Output: '1 año, 20 horas, 15 minutos y 35 segundos'
new Intl.DurationFormat('es', { style: 'long' }).format(duration);
// Output: '1年20小时15分钟35秒钟'
new Intl.DurationFormat('zh', { style: 'long' }).format(duration);
// Output: '1 år, 20 timer, 15 minutter og 35 sekunder'
new Intl.DurationFormat('no', { style: 'long' }).format(duration);
// Output: 'mwaka 1, saa 20, dakika 15 na sekunde 35'
new Intl.DurationFormat('sw', { style: 'long' }).format(duration);
این نمونهها فقط به این نکته اشاره میکنند که با این ویژگی جدید چه کاری میتوانید انجام دهید. برای بررسی عمیقتر تواناییهای آن، اسناد Intl.DurationFormat
در MDN را برای اطلاعات بیشتر بخوانید.