Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS метод Date.toLocaleString()

Загальний опис

Date.prototype.toLocaleString() перетворює дати та час до формату рядка, який відповідає локальним налаштуванням конкретної культурної локації (або локалі) користувача. Це часто корисно при створенні міжнародних застосунків або веб-сайтів, які слід адаптувати до відвідувачів з різних регіонів світу.

Один із основних сценаріїв використання цього методу – це адаптація дат та часу до місцевого формату. Наприклад, дата "20.12.2022" у деяких країнах може бути представлена як "12/20/2022" або навіть як "2022/12/20". Якщо розробник хоче вивести дату так, щоб вона виглядала зрозуміло для користувача згідно з його регіональними налаштуваннями, Date.prototype.toLocaleString() стане незамінним інструментом. Розглянемо практичний приклад:

let date = new Date();
console.log(date.toLocaleString());  // Вивід може бути "12/20/2022, 10:15:30 AM" або іншим, в залежності від локації користувача.

Додатково, цей метод приймає два параметри: locales та options, які дозволяють керувати деталями форматування. locales може бути рядком з тегом мови BCP 47 або масивом таких рядків, що дає можливість задати бажану локацію або декілька локацій у порядку пріоритету. options — це об'єкт, що містить додаткові налаштування форматування, такі як використання скорочених назв місяців, днів тижня тощо.

Так, використання параметра options може допомогти нам отримати лише дату без часу або навпаки:

let date = new Date();
let options = { year: 'numeric', month: 'long', day: 'numeric' };
console.log(date.toLocaleString('uk-UA', options));  // "20 грудня 2022 р."

Ще однією особливістю є підтримка Intl.DateTimeFormat конструктора. Це об’єкт конструктора в JavaScript, який дозволяє вам форматувати дату і час відповідно до мови і регіональних налаштувань користувача. Якщо середовище виконання не підтримує Intl.DateTimeFormat, параметри locales та options можуть бути проігноровані, і використовуватиметься локаль хоста.

Date.prototype.toLocaleString() відрізняється від інших методів, таких як toLocaleDateString() або toLocaleTimeString(). Ці методи виводять лише дату або час відповідно, тоді як toLocaleString() виводить і дату, і час. Це важливо враховувати при виборі правильного методу для ваших потреб.

Нотатка:

Початківцям слід пам’ятати, що при використанні методу $Date.prototype.toLocaleString()$, завжди перевіряйте, чи правильно він інтерпретує часові пояси і чи він враховує літній час. Це може бути критично, особливо при взаємодії з іншими датами та часовими мітками у вашому застосунку.

Нотатка:

Зважайте на необхідність виведення конкретних елементів дати та часу. Використовуючи Date.prototype.toLocaleString(), ви можете налаштувати виведення, використовуючи параметр options і вказуючи потрібні компоненти, наприклад, { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit' }, щоб вивести потрібну інформацію в зручному форматі.

Порада:

Досвідчені розробники можуть оптимізувати виконання, кешуючи об’єкти Intl.DateTimeFormat для повторного використання. Це зокрема корисно у великих застосунках, де Date.prototype.toLocaleString() викликається часто, і може сприяти підвищенню продуктивності застосунку.

Порада:

Для уникнення можливих проблем зі сумісністю, рекомендується тестувати роботу Date.prototype.toLocaleString() в різних браузерах і на різних платформах. Не у всіх веб-оточеннях поведінка цього методу може бути ідентичною, тому важливо переконатися, що він веде себе очікуваним чином у кожному конкретному середовищі.

Синтаксис

toLocaleString()
toLocaleString(locales)
toLocaleString(locales, options)

Параметри

locales

Рядок з мовним тегом BCP 47 або масив таких рядків. Відповідає параметру locales конструктора Intl.DateTimeFormat().

Значення:

  • Рядок (наприклад, "en-US", "uk-UA").
  • Масив рядків (наприклад, ["en-US", "fr-FR"]).

У реалізаціях без підтримки Intl.DateTimeFormat, цей параметр ігнорується, і зазвичай використовується локаль хоста.

options

Об'єкт з різними властивостями для налаштування виводу, такими як:

  • weekday: наприклад, "long", "short", "narrow".
  • year: наприклад, "numeric", "2-digit".
  • month: наприклад, "numeric", "2-digit", "long", "short", "narrow".
  • day: наприклад, "numeric", "2-digit".
  • hour, minute, second: наприклад, "numeric", "2-digit".
  • fractionalSecondDigits: ціле число від 1 до 3.

Якщо weekday, year, month, day, dayPeriod, hour, minute, second, та fractionalSecondDigits не визначені, тоді year, month, day, hour, minute, second будуть встановлені як "numeric".

У реалізаціях без підтримки Intl.DateTimeFormat цей параметр ігнорується.

Return

string

Повертає рядок, який представляє задану дату відповідно до конвенцій конкретної мови (language-specific conventions). Тобто, цей метод конвертує дату та час у формат, зрозумілий для користувача, з урахуванням його локалі.

Переглядачі

Переглядач

1

1

1

3

12

Переглядач

4.4

18

4

1

Переглядач

0.10.0

1.0

Приклади


Цей приклад демонструє динамічний вибір локалізації для методу toLocaleString(), який визначає, як дата та час будуть відображатися на веб-сторінці. Користувач може вибрати локалізацію з випадаючого списку, і результат буде автоматично оновлено на сторінці.

У цьому прикладі ми створюємо новий об’єкт Date та отримуємо локалізовану строку дати та часу за допомогою методу toLocaleString(), вказуючи ідентифікатор локалі 'uk-UA' та об’єкт опцій для форматування. Результат буде виведений у консоль у форматі, зрозумілому для українських користувачів.

// Створюємо новий об’єкт Date
let currentDate = new Date();

// Виводимо локалізовану строку дати та часу
let localizedString = currentDate.toLocaleString('uk-UA', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  timeZoneName: 'short'
});

console.log(localizedString); // Наприклад: "24 вересня 2023 р., 14:45:30 GMT+2"

У другому прикладі ми створюємо об’єкт Date для 1 січня 2023 року. Потім, за допомогою методу toLocaleString(), ми отримуємо локалізовану строку саме для дати, виключивши час, вказавши undefined для годин, хвилин та секунд у параметрах опцій. Це допомагає відобразити користувачеві лише ту інформацію, яка йому потрібна.

// Створюємо об’єкт Date для 1 січня 2023 року
let newYearDate = new Date(2023, 0, 1);

// Виводимо локалізовану строку дати без часу
let dateString = newYearDate.toLocaleString('uk-UA', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  hour: undefined,
  minute: undefined,
  second: undefined,
});

console.log(dateString); // "1 січня 2023 р."