en.javascript.info/1-js/4-data-structures/11-datetime/8-format-date-ddmmyy/solution.md
2015-03-10 12:36:58 +03:00

1.5 KiB
Raw Blame History

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

  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', так что будет все в порядке.

Полный код:

//+ run
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'