Полезный и гибкий способ форматирования DateTimes в JavaScript: Intl.DateTimeFormat
:
var date = new Date();
var options = { year: 'numeric', month: 'short', day: '2-digit'};
var _resultDate = new Intl.DateTimeFormat('en-GB', options).format(date);
// The _resultDate is: "12 Oct 2017"
// Replace all spaces with - and then log it.
console.log(_resultDate.replace(/ /g,'-'));
Результат: "12-Oct-2017"
Форматы даты и времени можно настроить с помощьюАргумент options.
Объект Intl.DateTimeFormat
является конструктором для объектов, которые разрешают форматирование даты и времени с учетом языка.
Синтаксис
new Intl.DateTimeFormat([locales[, options]])
Intl.DateTimeFormat.call(this[, locales[, options]])
Параметры
locales
Необязательно.Строка с языковым тегом BCP 47 или массив таких строк.Для общей формы и интерпретации аргумента locales см. Страницу Intl.Допускаются следующие ключи расширения Unicode:
nu
Numbering system. Possible values include: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
ca
Calendar. Possible values include: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".
Опции
Необязательно.Объект с некоторыми или всеми из следующих свойств:
localeMatcher
Используемый алгоритм сопоставления локали.Возможные значения: "lookup"
и "best fit"
;по умолчанию "best fit"
.Информацию об этой опции см. На странице Intl.
timeZone
Часовой пояс, который необходимо использовать.Единственные значения, которые должны распознавать реализации, это "UTC"
;по умолчанию используется часовой пояс по умолчанию.Реализации также могут распознавать имена часовых поясов в базе данных часовых поясов IANA, например "Asia/Shanghai"
, "Asia/Kolkata"
, "America/New_York"
.
hour12
использовать 12-часовое время (в отличие от 24-часового).Возможные значения: true
и false
;значение по умолчанию зависит от локали.
formatMatcher
Используемый алгоритм сопоставления формата.Возможные значения: "basic"
и "best fit"
;по умолчанию "best fit"
.Информацию об использовании этого свойства см. В следующих параграфах.
Следующие свойства описывают компоненты даты и времени для использования в форматированном выводе и их требуемые представления.Реализации должны поддерживать по крайней мере следующие подмножества:
weekday, year, month, day, hour, minute, second
weekday, year, month, day
year, month, day
year, month
month, day
hour, minute, second
hour, minute
Реализации могут поддерживать другие подмножества, и запросы будут согласовываться со всеми доступными комбинациями подмножеств-представлений, чтобы найти наилучшее соответствие.Для этого согласования доступны два алгоритма, которые выбираются свойством formatMatcher: полностью указанный алгоритм "basic"
и зависящий от реализации алгоритм «наилучшего соответствия».
день недели
Представление дня недели.Возможные значения: "narrow"
, "short"
, "long"
.
era
Представление эпохи.Возможные значения: "narrow"
, "short"
, "long"
.
year
Представление года.Возможные значения: "numeric"
, "2-digit"
.
month
Представление месяца.Возможные значения: "numeric"
, "2-digit"
, "narrow"
, "short"
, "long"
.
day
Представление дня.Возможные значения: "numeric"
, "2-digit"
.
час
Представление часа.Возможные значения: "numeric"
, "2-digit"
.
минута
Представление минуты.Возможные значения: "numeric"
, "2-digit"
.
секунда
Представление секунды.Возможные значения: "numeric"
, "2-digit"
.
timeZoneName
Представление имени часового пояса.Возможные значения: "short"
, "long"
.Значение по умолчанию для каждого свойства компонента даты и времени не определено, но если все свойства компонента не определены, то предполагается, что год, месяц и день равны "numeric"
.
Проверка в сети
Подробнее