const months_RU = 'Января,Февраля,Марта,Апреля,Мая,Июня,Данунаф,Лень,Дальше,Сами'
.split(',');
const parseDate = d => d.split('.')
.reduce((acc, c, i) => (acc.unshift(i & 1 ? months_RU[+c - 1] : +c), acc), [])
.join(' ');
Использование: parseDate('2020.06.01') // "1 Июня 2020"
Как это работает:
По точкам разбить в массив строк
['2020', '06', '01']
;
собрать в массив задом-наперёд (день, месяц, год) – вставить в начало массива
.unshift()
;
Месяц – элемент нечётный, последний бит = 1, проверка
i & 1
вернёт 1 только для месяца;
месяц заменить на название из массива. Там нумерация с 0, поэтому
-1
.
Остальные (год и дату) просто сделать из строки – числом, через унарный оператор
+
Получится массив
[1, 'Июня', 2020]
Склеить его элементы в строку через пробел:
join(' ')