вернуться к уроку

Вывести дату в формате дд.мм.гг

важность: 3

Напишите функцию formatDate(date), которая выводит дату date в формате дд.мм.гг:

Например:

var d = new Date(2014, 0, 30); // 30 января 2014
alert( formatDate(d) ); // '30.01.14'

P.S. Обратите внимание, ведущие нули должны присутствовать, то есть 1 января 2001 должно быть 01.01.01, а не 1.1.1.

Открыть песочницу с тестами для задачи.

Получим компоненты один за другим.

  1. День можно получить как date.getDate(). При необходимости добавим ведущий ноль:

    var dd = date.getDate();
    if (dd < 10) dd = '0' + dd;
  2. date.getMonth() возвратит месяц, начиная с нуля. Увеличим его на 1:

    var mm = date.getMonth() + 1; // месяц 1-12
    if (mm < 10) mm = '0' + mm;
  3. date.getFullYear() вернёт год в 4-значном формате. Чтобы сделать его двузначным – воспользуемся оператором взятия остатка '%':

    var yy = date.getFullYear() % 100;
    if (yy < 10) yy = '0' + yy;

    Заметим, что год, как и другие компоненты, может понадобиться дополнить нулём слева, причём возможно что yy == 0 (например, 2000 год). При сложении со строкой 0+'0' == '00', так что будет все в порядке.

Полный код:

function formatDate(date) {

  var dd = date.getDate();
  if (dd < 10) dd = '0' + dd;

  var mm = date.getMonth() + 1;
  if (mm < 10) mm = '0' + mm;

  var yy = date.getFullYear() % 100;
  if (yy < 10) yy = '0' + yy;

  return dd + '.' + mm + '.' + yy;
}

var d = new Date(2014, 0, 30); // 30 Янв 2014
alert( formatDate(d) ); // '30.01.14'
function formatDate(date) {

  var dd = date.getDate();
  if (dd < 10) dd = '0' + dd;

  var mm = date.getMonth() + 1;
  if (mm < 10) mm = '0' + mm;

  var yy = date.getFullYear() % 100;
  if (yy < 10) yy = '0' + yy;

  return dd + '.' + mm + '.' + yy;
}

Открыть решение с тестами в песочнице.