Как преобразовать дату в виде строки в «дд / мм / гггг»? - PullRequest
0 голосов
/ 02 февраля 2020

Мы используем момент. js для форматирования даты.

Как мне отформатировать такую ​​дату:

const createdAt = 'Mar 29 2019  5:02PM'

в dd/mm/yyyy формате?

Я уже пробовал:

moment(createdAt).toDate();
moment(createdAt).format('DD/MM/YYYY');

но я получил Invalid date за оба.

Ответы [ 2 ]

3 голосов
/ 02 февраля 2020

Вам нужно будет указать формат, потому что это не известный формат даты, что-то вроде этого:

const result = moment('Mar 29 2019  5:02PM', "MMM DD YYYY  hh:mmA").format('DD/MM/YYYY');

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
2 голосов
/ 02 февраля 2020

Вам не обязательно нужен moment для этого, особенно если вам нужно указать ему, как анализировать строку. Для такой простой задачи, возможно, вы могли бы сделать это самостоятельно?

const convert = date_str =>
  date_str.toLowerCase().replace(/^(\w+) (\d+) (\d+) .+$/, (full_match, month, day, year) => {
    const month_num =
        month === 'jan' ? '01'
      : month === 'feb' ? '02'
      : month === 'mar' ? '03'
      : month === 'apr' ? '04'
      : month === 'may' ? '05'
      : month === 'jun' ? '06'
      : month === 'jul' ? '07'
      : month === 'aug' ? '08'
      : month === 'sep' ? '09'
      : month === 'oct' ? '10'
      : month === 'nov' ? '11'
                        : '12';
    return `${day}/${month_num}/${year}`
  });
  
console.log(convert('Mar 29 2019  5:02PM'));
...