Форматирование дат и чисел

Vex.js — это библиотека, которая значительно облегчает манипуляцию с датами и числами в JavaScript. В отличие от стандартных методов, предлагаемых JavaScript, Vex предоставляет более удобные и лаконичные инструменты для работы с данными. Основной особенностью Vex является поддержка локализации, что делает её отличным выбором для проектов с международной аудиторией. В этой главе рассматриваются основные возможности форматирования дат и чисел с помощью библиотеки Vex.

Форматирование дат

Для работы с датами в Vex используется встроенная поддержка локализации, которая позволяет изменять формат вывода в зависимости от языка пользователя. Важно отметить, что Vex использует библиотеку Date.js для парсинга и форматирования дат. Она позволяет обрабатывать даты в разных форматах и автоматически подстраивать их под выбранный язык.

Основы форматирования дат

Метод для форматирования дат в Vex следующий:

Vex.format.date(date, format, locale);
  • date — это объект Date или строка, представляющая дату.
  • format — строка формата, которая определяет, как будет отображаться дата.
  • locale — опциональный параметр, который указывает язык, на котором будет выводиться дата.

Пример:

let date = new Date('2023-01-25');
let formattedDate = Vex.format.date(date, 'DD/MM/YYYY', 'ru');
console.log(formattedDate); // Выведет: 25/01/2023
Форматирование даты с учетом локализации

Vex поддерживает различные шаблоны для форматирования дат. Примеры шаблонов:

  • YYYY — год в 4 знака.
  • MM — месяц (от 01 до 12).
  • DD — день месяца (от 01 до 31).
  • dddd — полный день недели (например, понедельник).
  • mmm — сокращенное название месяца (например, янв, фев, мар).

Пример с локализацией:

let date = new Date('2023-01-25');
let formattedDateRU = Vex.format.date(date, 'DD MMMM YYYY', 'ru');
console.log(formattedDateRU); // Выведет: 25 Января 2023

Можно легко подстроить формат даты под разные языки, например, при изменении локали с ru на en результат изменится:

let formattedDateEN = Vex.format.date(date, 'DD MMMM YYYY', 'en');
console.log(formattedDateEN); // Выведет: 25 January 2023

Форматирование чисел

Важной функцией библиотеки является форматирование чисел. Vex позволяет легко адаптировать числа под нужды локализации и форматирования. Библиотека поддерживает различные варианты отображения чисел, включая разделение тысяч, округление и настройку точности.

Основы форматирования чисел

Для форматирования чисел используется метод:

Vex.format.number(number, format, locale);
  • number — число, которое нужно отформатировать.
  • format — строка формата, которая описывает, как должно отображаться число.
  • locale — локаль, которая определяет, как будет отформатировано число.

Пример:

let number = 1234567.89;
let formattedNumber = Vex.format.number(number, '0,0.00', 'ru');
console.log(formattedNumber); // Выведет: 1 234 567,89
Округление и точность

Vex позволяет задавать точность числа с помощью формата:

  • 0.00 — два знака после запятой.
  • 0,0 — использование разделителя тысяч.
  • 0.0000 — четыре знака после запятой.

Пример округления:

let number = 12345.6789;
let formattedNumber = Vex.format.number(number, '0,0.00', 'en');
console.log(formattedNumber); // Выведет: 12,345.68
Локализация чисел

Числа могут отображаться по-разному в зависимости от локали. Например, в некоторых странах для разделения тысяч используется пробел, а в других — запятая. Важно понимать, как работает разделение на тысячи и десятичные знаки в зависимости от языка.

Пример для английской локали:

let number = 1234567.89;
let formattedNumberEN = Vex.format.number(number, '0,0.00', 'en');
console.log(formattedNumberEN); // Выведет: 1,234,567.89

Пример для русской локали:

let formattedNumberRU = Vex.format.number(number, '0,0.00', 'ru');
console.log(formattedNumberRU); // Выведет: 1 234 567,89

Работа с валютами

Vex также поддерживает форматирование чисел в виде валют. Метод для этого следующий:

Vex.format.currency(number, currency, locale);
  • number — число, которое нужно отформатировать как валюту.
  • currency — код валюты (например, USD, EUR, RUB).
  • locale — локаль, которая определяет формат валюты.

Пример для валюты в рублях:

let price = 1500;
let formattedPrice = Vex.format.currency(price, 'RUB', 'ru');
console.log(formattedPrice); // Выведет: 1 500,00 ₽

Пример для валюты в долларах:

let priceUSD = 1500;
let formattedPriceUSD = Vex.format.currency(priceUSD, 'USD', 'en');
console.log(formattedPriceUSD); // Выведет: $1,500.00

Поддержка научной и инженерной нотации

Vex поддерживает форматирование чисел в научной нотации, что может быть полезно для отображения очень больших или маленьких чисел.

Пример:

let largeNumber = 123456789;
let formattedLargeNumber = Vex.format.number(largeNumber, '0.0e+0', 'en');
console.log(formattedLargeNumber); // Выведет: 1.2e+8

Итоги

Vex предоставляет мощные и гибкие инструменты для форматирования дат и чисел, с учетом локализации, точности и валютных предпочтений. Возможности форматирования обеспечивают гибкость и удобство при работе с международными проектами. Библиотека позволяет разработчикам легко подстраивать отображение данных под требования разных культур и стандартов.