Я попытался отобразить дату в определенном формате по дате конвейера, затем я получил эту ошибку:

Uncaught Error: InvalidPipeArgument: 'Unable to convert "25/01/2019" into a date' for pipe 'e'
    at Xe (main.fc4242d58c261cf678ad.js:1)
    at e.transform (main.fc4242d58c261cf678ad.js:1)
    at main.fc4242d58c261cf678ad.js:1
    at main.fc4242d58c261cf678ad.js:1
    at es (main.fc4242d58c261cf678ad.js:1)
    at Cs (main.fc4242d58c261cf678ad.js:1)
    at Object.updateRenderer (2.afd83a5d88a3f927f011.js:1)
    at Object.updateRenderer (main.fc4242d58c261cf678ad.js:1)
    at $a (main.fc4242d58c261cf678ad.js:1)
    at us (main.fc4242d58c261cf678ad.js:1)

Я получил информацию о дате от API с string "25/01/2019", затем я отображаю на html вот так:

{{ item.date | date: 'dd MMM yyyy' }}

Я не знаю, я сделал некоторые ошибки или нет. Но я хочу отобразить дату в другом формате, а ввод даты - строковый тип.

Могу ли я это сделать? если да, то какой путь в этом случае? Большое спасибо.

Примечание: эта ошибка не происходит на localhost. на моем местном хосте все еще работает хорошо. Я встретил это, когда развернул свое веб-приложение в реальной среде.

-1
Tran Son Hoang 12 Апр 2019 в 10:18

2 ответа

Лучший ответ

В документе говорится

Выражение даты: объект Date, число (миллисекунды с начала UTC) или строка ISO

25/01/2019 не является строкой ISO, 2019-01-25 является. NB: есть и другие датирующие трубки вне общего углового пакета, или вы можете сделать это.

2
David Palita 12 Апр 2019 в 07:53

Дополнение к ответу Дэвида Палиты,

Сначала вы должны конвертировать из String в Date, затем вы можете использовать DatePipe, как вы упоминали,

item.date = parseDate(item.date, 'dd/mm/YYYY');

Если вы воспроизводите вашу проблему на stackblitz, мы можем сделать лучшие указания для вашего случая.

Я также рекомендую вам проверить этот ТАК вопрос.

0
shadowman_93 12 Апр 2019 в 08:07