Ваш код имеет несколько недостатков, которые не позволяют получить ожидаемый формат даты. Вот основные из них:
1. **Неправильное использование метода `getMonth()`**: Метод `getMonth()` возвращает месяцы в диапазоне от 0 до 11. Это значит, что январь — это 0, а декабрь — 11. Если вы хотите отображать месяц в привычном формате (с 1 до 12), вам нужно добавить 1 к значению, полученному от `getMonth()`.
2. **Форматирование чисел**: Вы всегда должны добавлять ведущий ноль к числам, если они меньше 10. В вашем коде это сделано только в случае, если день и месяц меньше 10, но это не дает нужного формата.
3. **Неправильное возвращение строки**: Ваша текущая реализация не форматирует дату правильно. Нужно использовать `String.prototype.padStart()` для добавления ведущих нулей.
Вот исправленный код:
```javascript
let getDateFormat = ((data = new Date(2001, 5, 5), separator = ".") => {
let days = data.getDate();
let month = data.getMonth() + 1; // Добавьте 1 к месяцу
let year = data.getFullYear();
// Используем padStart для добавления ведущих нулей
days = String(days).padStart(2, '0');
month = String(month).padStart(2, '0');
return days + separator + month + separator + year;
});
let newData = getDateFormat();
console.log('newDate', newData); // Исправим на вывод правильной переменной
```
Теперь этот код будет корректно выводить дату в формате `05.06.2001`, поскольку месяц был увеличен на 1. Обратите внимание, что если вы хотите получить именно 05.05.2001, вам нужно будет поменять дату в конструкторе или задать другой объект `Date`.