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

Давайте теперь научимся выводить дату в определенном формате. Пусть, к примеру, мы хотим вывести на экран текущие день, месяц и год в формате год-месяц-день.

Давайте сделаем это:

let date = new Date(); console.log(date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate());

Наш код, однако, имеет проблему: номера месяцев будут начинаться с нуля, а нам, скорее всего, хотелось бы, чтобы они начинались с единицы.

Исправим проблему:

let date = new Date(); console.log(date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate());

Наш код, однако, все равно не совершенен. Но заметить это можно только в определенные месяцы и в определенные дни. Пусть, к примеру, сейчас 5-го марта 2020 года.

В этом случае наша дата выведется в формате 2020-3-5. А нам хотелось бы, чтобы дата вывелась в формате 2020-03-05 - с нулями перед номерами дней и месяцев из одной цифры.

Для решения проблемы напишем функцию addZero, которая будет добавлять нули перед числами от 0 до 9:

function addZero(num) { if (num >= 0 && num <= 9) { return '0' + num; } else { return num; } }

Применим созданную функцию и теперь действительно получим дату в нужном нам формате:

let date = new Date(); console.log(addZero(date.getFullYear()) + '-' + addZero(date.getMonth() + 1) + '-' + addZero(date.getDate()));

Выведите на экран текущую дату-время в формате 12:59:59 31.12.2014. Используйте для всех частей даты (кроме года) созданную нами функцию для добавления нуля при необходимости.

Преобразование формата даты

Давайте теперь научимся менять формат даты. Пусть, к примеру, у нас есть строка с датой в формате год-месяц-день. Давайте поменяем формат этой даты на другой, к примеру, на такой: день/месяц/год.

Давайте решим задачу на конкретном примере. Пусть в переменной date лежит дата '2025-12-31'. Давайте преобразуем эту дату в '31/12/2025'

Для решения задачи разобьем нашу строку '2025-12-31' в массив, используя метод split с разделителем дефисом. В результате в нулевом элементе массива окажется год, в первом - месяц, во втором - день:

let str = '2025-12-31'; let arr = str.split('-'); console.log(arr); // получим массив ['2025', '12', '31']

Теперь, обращаясь к разным элементам массива по их ключам, сформируем нужную нам строку:

let str = '2025-12-31'; let arr = str.split('-'); let result = arr[2] + '/' + arr[1] + '/' + arr[0]; console.log(result); // получим строку '31/12/2025'

Можно также использовать комбинацию методов split, reverse и join:

let str = '2025-12-31'; let result = str.split('-').reverse().join('/'); console.log(result); // получим строку '31/12/2025'

Дана дата в формате год-месяц-день. Преобразуйте эту дату в формат день.месяц.год.