Ngày xuất bản: 20/3/2025
Một thông tin phổ biến mà bạn có thể thấy trên trang web là một đoạn văn bản cho biết thời gian còn lại cho đến một sự kiện nhất định hoặc thời gian đã trôi qua kể từ khi một sự kiện xảy ra. Loại dữ liệu này thường được biểu thị dưới dạng một chuỗi cho biết khoảng thời gian tính bằng giờ, phút, giây hoặc các đơn vị thời gian hữu ích khác.
Intl.DurationFormat
là một tính năng hữu ích giúp bạn thực hiện việc này trong trình duyệt, đồng thời tính đến mọi nhu cầu quốc tế hoá mà bạn có thể có, mà không cần thêm JavaScript. Kể từ tháng 3 năm 2025, báo cáo này đã trở thành Báo cáo cơ sở mới có.
Cách hoạt động của Intl.DurationFormat
Intl.DurationFormat
là một lớp mà khi được tạo bản sao, sẽ trả về một chuỗi mô tả khoảng thời gian. Hàm này hoạt động bằng cách chỉ định một đối tượng chứa các khoá và giá trị tương ứng với các đơn vị thời gian mà bạn muốn tạo chuỗi:
// 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);
Để trả về một chuỗi ở định dạng dài, hãy truyền giá trị 'long'
vào tuỳ chọn style
trong đối số thứ hai của hàm khởi tạo:
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);
Cho đến nay, các ví dụ này tạo ra chuỗi bằng tiếng Anh. Vì đây là một tính năng quốc tế hoá, nên tính hữu ích thực sự của tính năng này là bạn có thể truyền vào bất kỳ ngôn ngữ hợp lệ nào và nhận được các chuỗi được định dạng bằng bất kỳ ngôn ngữ được hỗ trợ nào mà bạn cần:
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);
Những ví dụ này chỉ cho bạn thấy những việc bạn có thể làm với tính năng mới này. Để tìm hiểu sâu hơn về những gì Intl.DurationFormat
có thể làm được, hãy đọc tài liệu về Intl.DurationFormat
trên MDN để biết thêm thông tin.