@KsyuLAvr

Как вывести правильный формат даты в JS?

Написала вот такой код:

let getDateFormat = ((data = new Date (2001, 5, 5), separator = ".") => {
    let days = data.getDate();
    let month = data.getMonth(); 
    let year = data.getFullYear();
    let str = '0';
if (days < 10 && month < 10 ){
    data = str + days + str + month
} 
return  days + separator + month + separator + year + separator 
})

let newData = getDateFormat();
console.log('newDate', getDateFormat())

Нужно, чтобы формат даты был 05.05.2001.
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 2
Попробуй
let getDateFormat = ((data = new Date(2001, 4, 5), separator = ".") => {
    let days = data.getDate();
    let month = data.getMonth() + 1; // Добавляем 1, так как месяцы начинаются с 0
    let year = data.getFullYear();

    // Добавляем ведущий ноль, если день или месяц меньше 10
    days = days < 10 ? '0' + days : days;
    month = month < 10 ? '0' + month : month;

    return days + separator + month + separator + year;
});

let newData = getDateFormat();
console.log('newDate:', newData);
Ответ написан
Комментировать
Elaryks
@Elaryks
В JS месяцы начинаются с 0, поэтому new Date (2001, 5, 5) — это июнь (06), это нужно учитывать. Кроме того, вы делаете проверку, если день меньше 10 и месяц меньше 10, при этом действие внутри блока бессмысленно — data далее не используется.

Вариант с парсингом Date
const getDateFormat = (date = new Date(2001, 4, 5), separator = '.') => {
  const days = String(date.getDate()).padStart(2, '0');
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const year = date.getFullYear();

  return [days, month, year].join(separator);
};

Вариант с использованием Intl.DateTimeFormat
const getDateFormat = (date = new Date(2001, 4, 5), separator = '.') => {
  const options = { day: '2-digit', month: '2-digit', year: 'numeric' };
  const formatter = new Intl.DateTimeFormat('ru-RU', options);

  return formatter.format(date).replace(/\./g, separator);
};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы