В этой статье я покажу вам способ форматирования даты (или объекта 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)
Если хотите, вы можете запустить его онлайн.
Заключение
С помощью этого метода вы можете форматировать дату по своему усмотрению. Вместо дефисов вы можете использовать косые черты / или вы также можете поставить сначала день, затем месяц, год и так далее.