#копаем_js
Еще один пост вдогонку к скорости развития веба. На данный момент у нас есть очень много библиотек для работы с датой и временем:
day.js,
moment.js,
date-fns - все предоставляют "удобное" API для работы с датой относительно нативного объекта Date.
Но благо время идет, веб развивается, и люди внедряют универсальное API для работы со временем прямо "из коробки". Упоминание про Temporal API у меня
было выше, советую посмотреть.
Но пока мы ждем его, советую обратить внимание на глобальный объект Intl (от слова Internationalization), который в себе имеет два очень интересных конструктора:
DateTimeFormat и
NumberFormat. Просто оставлю примеры кода, при помощи которых можно понять, насколько эти API мощные.
И советую переходить с вышеупомянутых библиотек, освободите итоговый бандл как минимум ;)
const PRICE = 123456.789;
// Форматируем в евро
console.log(
new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
PRICE,
),
);
// 123.456,79 €
// Японская йена не использует числа после запятой
console.log(
new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
PRICE,
),
);
// ¥123,457
const date = new Date(Date.UTC(2020, 11, 20, 3, 23, 16, 738));
// Результат ниже учитывает UTC-таймзону - у вас результат может быть другим
// Можно указать конкретную локаль для форматирования(locale)
console.log(new Intl.DateTimeFormat('en-US').format(date));
// Ожидаемый результат: "12/20/2020"