Форматирование даты не стандартный формат
Ребят, всем привет. Помогите, пожалуйста, разобраться как правильно сделать.
есть например код
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);