Статьи по JavaScript

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

В этой статье я покажу вам способ форматирования даты (или объекта Date) в JavaScript.

Мы не будем использовать метод toLocaleString или аналогичный, мы создадим свой собственный метод, потому что, хотя есть методы, которые могут работать лучше, иногда необходимо отформатировать дату в JavaScript в соответствии с ручным форматом.

Методы определения даты

Объекты, являющиеся экземпляром Date, имеют некоторые важные методы. Среди них:

getFullYear: получает 4-значный год, например 2020.

getMonth: получает месяц как целое число, начиная с 0 для января и заканчивая 11 для декабря.

getDate: получение дня месяца, от 1 до 31 (в случае, если месяц имеет 31 день)

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

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

Мы покажем вам функцию, которую я использую для форматирования даты в формате YYYYY-MM-DD, например, 2020-03-21 (с ведущим нулем, если необходимо). Функция выглядит следующим образом:

const formatearFecha = fecha => { const mes = fecha.getMonth() + 1; // Поскольку месяцы отсчитываются от 0 const dia = fecha.getDate(); return `${fecha.getFullYear()}-${(mes < 10 ? '0' : '').concat(mes)}-${(dia < 10 ? '0' : '').concat(dia)}`; };
Code language: JavaScript (javascript)

Я получаю месяц и день отдельно. Добавляю 1 к месяцу. Затем я использую шаблоны строк или обратные знаки (${}), чтобы оценить, если месяц меньше десяти, чтобы добавить ведущий ноль.

Делаю то же самое с днем (за исключением добавления 1), и возвращаю результат конкатенации этих двух данных, также используя дефисы для их объединения.

Тестирование кода

Теперь давайте посмотрим полный код с помощью небольшого теста.

const formatearFecha = fecha => { const mes = fecha.getMonth() + 1; // Поскольку месяцы отсчитываются от 0 const dia = fecha.getDate(); return `${fecha.getFullYear()}-${(mes < 10 ? '0' : '').concat(mes)}-${(dia < 10 ? '0' : '').concat(dia)}`; }; // Тест с сегодняшней датой const fechaDeHoy = new Date(); const fechaFormateada = formatearFecha(fechaDeHoy); console.log(fechaFormateada);
Code language: JavaScript (javascript)

Если хотите, вы можете запустить его онлайн.

Заключение

С помощью этого метода вы можете форматировать дату по своему усмотрению. Вместо дефисов вы можете использовать косые черты / или вы также можете поставить сначала день, затем месяц, год и так далее.

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

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