Date.prototype.toLocaleFormat()

Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Нестандартний метод toLocaleFormat() перетворює дату на рядок, використовуючи вказане форматування. Intl.DateTimeFormat є альтернативою для форматування дат згідно зі стандартами. Також дивіться нову версію Date.prototype.toLocaleDateString().

Ця функціональність була прибрана та більше не працює у Firefox 58+. Більше інформації та допомогу з міграцією дивіться у статті Warning: Date.prototype.toLocaleFormat is deprecated.

Синтаксис

dateObj.toLocaleFormat(formatString)

Параметри

formatString
Рядок форматування у такому ж форматі, який очікується функцією strftime() у C.

Повертає

Рядкове представлення наданої дати з використанням вказаного форматування.

Опис

Метод toLocaleFormat() надає більший програмний контроль над форматуванням створеної дати та/або часу. Назви місяців та днів тижня локалізуються за допомогою мовних налаштувань операційної системи. Однак, порядок дня та місяця, а також інші задачі локалізації не опрацьовуються автоматично, оскільки ви контролюєте те, в якому порядку вони виводяться. Ви повинні подбати про те, щоб рядок форматування був правильно локалізований згідно системних налаштувань користувача. Пам'ятайте, що мовні налаштування системи не обов'язково співпадають з налаштуваннями веб-переглядача.

Розробники XULRunner мають знати, що простого завантаження рядка форматування з файлу .dtd чи .properties за допомогою URI chrome://somedomain/locale/somefile.ext слід уникати, оскільки файл .dtd/.properties та метод toLocaleFormat() не обов'язково використовують однакову мову, що може призвести до дивних чи навіть неоднозначних або нечитабельних дат.

Також зауважте, що поведінка мови, що використовується, залежить від платформи, а користувач може змінити системні налаштування, а отже, використання системних налаштувань з рядком форматування може бути зовсім непридатним. Вам варто розглянути використання деяких більш загальних методів toLocale* об'єкта Date або створення власної локалізації дати, яку потрібно, відобразити, за допомогою якогось з методів get* об'єкта Date замість використання цього методу.

Приклади

Використання toLocaleFormat()

var today = new Date();
var date = today.toLocaleFormat('%A, %B %e, %Y');

У цьому прикладі toLocaleFormat() повертає рядок, такий як "Wednesday, October 3, 2007". Зауважте, що рядок форматування у цьому прикладі не локалізований як слід, що призведе до описаних вище проблем.

Поліфіл

Використовуючи бібліотеку DateJS, ви можете створити поліфіл методу library you can polyfill Date.prototype.toLocaleDateString() ось так:

if (!Date.prototype.toLocaleFormat) {
    (function() {
        Date.prototype.toLocaleFormat = function(formatString) {
            return this.format(formatString);
        };
    }());
}

Специфікації

Не є частиною жодного стандарту.

Сумісність з веб-переглядачами

Не підтримується жодним переглядачем. Попередньо підтримувався у Firefox 1.5 до Firefox 57 (січень 2018).

Див. також