Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 105 из 114 · 7 мин
Intl.DateTimeFormat formatToParts, formatRange, formatRangeToParts; Intl.RelativeTimeFormat; Intl.DurationFormat.
«2026-11-02T09:30» пользователи не понимают. Хочу «5 минут назад».
Intl умеет и «назад», и диапазоны дат, и длительности — на любом языке.
formatToParts()const f = new Intl.DateTimeFormat("ru-RU", { dateStyle: "long", timeZone: "UTC" });
console.log(f.formatToParts(new Date(Date.UTC(2026, 10, 2))).map((p) => p.type).join(","));formatRange() · formatRangeToParts()formatRange(a, b) → «2–8 ноября 2026 г.» — без повторения общего месяца и года.const f = new Intl.DateTimeFormat("ru-RU", { dateStyle: "long", timeZone: "UTC" });
console.log(f.formatRange(new Date(Date.UTC(2026, 10, 2)), new Date(Date.UTC(2026, 10, 8))));
console.log(f.formatRangeToParts(new Date(0), new Date(86400000)).length > 0);Intl.RelativeTimeFormatnew Intl.RelativeTimeFormat("ru", { numeric: "auto" }).format(-1, "day") → «вчера»; formatToParts — по частям.const rtf = new Intl.RelativeTimeFormat("ru", { numeric: "auto" });
console.log(rtf.format(-5, "minute"), rtf.format(-1, "day"), rtf.format(2, "hour"), rtf.formatToParts(3, "day").length);Intl.DurationFormatnew Intl.DurationFormat("ru", { style: "short" }).format({ hours: 1, minutes: 15 }) → «1 ч 15 мин»; formatToParts — по частям.const df = new Intl.DurationFormat("ru", { style: "short" });
console.log(df.format({ hours: 1, minutes: 15 }), df.formatToParts({ minutes: 5 }).length > 0);Время для людей — относительное («5 минут назад»), для точности — полная дата в подсказке.
Напиши ago(minutes): строка через Intl.RelativeTimeFormat("ru", { numeric: "auto" }) — для minutes < 60 в минутах, иначе в целых часах (округлить вниз), всегда в прошлом.
Выберите один ответ.
Что даст numeric: "auto" для format(-1, "day")?
Проверяем состояние обучения…