Статьи по JavaScript

JavaScript: Форматирование даты с помощью DateTimeFormat

Недавно я показал вам, как форматировать даты в JavaScript, но мы делали это вручную, извлекая год, месяц, день и так далее и соединяя их.

Сегодня я покажу вам правильный способ сделать это, соблюдая локализацию. Таким образом, вы можете форматировать даты для разных мест и стран. Для этого мы будем использовать DateTimeFormat.

Формат даты

Дата, которую мы собираемся форматировать, должна быть экземпляром Date. Если это текущая дата, вы можете создать ее с помощью:

const date = new Date();
Code language: JavaScript (javascript)

И если у вас есть дата в строке (которая может быть получена из базы данных, бэкенда и так далее), вы можете создать новую дату, передав ей эту строку. Например:

const date = new Date(date_as_string);
Code language: JavaScript (javascript)

Я обычно храню даты в формате YYYYY-MM-DDTHH:MM:SS, например, 2021-04-27T11:17:00.

Создание форматера

Давайте создадим экземпляр Intl.DateTimeFormat, чтобы мы могли отформатировать нашу дату. Конструктор принимает в качестве первого аргумента параметр locale. Он является страной или местом, для которого вы хотите выполнить форматирование.

В примере я собираюсь создать форматтер для русского языка, поэтому local будет ru-RU.

const formater = new Intl.DateTimeFormat('ru-RU', { dateStyle: 'medium', timeStyle: 'medium' });
Code language: JavaScript (javascript)

Для второго аргумента у нас есть несколько опций, где мы можем указать, среди прочего, стиль даты и времени. Здесь мы можем управлять длиной даты.

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

Теперь, когда у нас есть форматер и дата в JavaScript, пришло время объединить их. Для этого полный код выглядит следующим образом:

const formater = new Intl.DateTimeFormat('ru-RU', { dateStyle: 'medium', timeStyle: 'medium' }); const fecha = new Date(); const formateddate = formater.format(fecha); console.log("Отформатированная дата:\n" + formateddate);
Code language: JavaScript (javascript)

Все, что нам нужно сделать, это вызвать метод под названием format, который вернет строку с отформатированными датой и временем. Выходные данные для этого случая: 6 мая 2021 15:30:51.

Как видите, форматирование правильное и понятное. Если мы установим dateStyle и timeStyle на full, то получим что-то вроде этого: Monday, April 5, 2021 at 16:26:09 Central Daylight Time.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *