Форматирование даты не стандартный формат

Ребят, всем привет. Помогите, пожалуйста, разобраться как правильно сделать.

есть например код

var date = 'май 27 1999';
console.log(date);

Как мне собственно форматировать эту дату в нормальный формат, что то вроде: 27.05.1999

Заранее благодарю за помощь.


Ответы (2 шт):

Автор решения: br3t

var dateBefore = 'май 27 1999';
var dateAfter = parseDate(dateBefore);
console.log(dateAfter);

function parseDate(dateToParse) {
  var parts = dateToParse.split(' '); // разбиваем строку на массив элементов, пробел в качестве разделителя
  var d = parts[1]; // вторая часть - число
  var m = ['', 'январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'].indexOf(parts[0]); // первая часть месяц. Получаем номер месяца по его названию
  var y = parts[2]; // третья часть - год
  return d + '.' + leadZero(m) + '.' + y; // выводим в нужном формате
}
function leadZero(n) {
  return n > 9 ? n : '0' + n; // генерируем нуль для номера месяца, если нужно
}

→ Ссылка
Автор решения: Leonid

let date = 'май 27 1999';

let newdate = date.replace(/([А-Яа-я]{3,10}) (\d{1,2}) (\d{4})/, (m, mon, day, year) => {
   day = +day < 10 ? '0' + day: day;
   mon = ['затычка','январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь'].indexOf(mon.toLowerCase());
   mon = +mon < 10 ? '0' + mon: mon;
   return day + '.' + mon + '.' + year;
});

console.log(newdate);

→ Ссылка