ОШИБКА Ошибка: InvalidPipeArgument: «Невозможно преобразовать« Недействительную дату »в дату» для канала «DatePipe»

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

created = this.datePipe.transform(dateCreated, 'yyyy-MM-ddTHH:mm');

Мне нужно время, потому что я использую службу, которой требуется этот параметр со временем для точной фильтрации данных.

Следующее изображение - ошибка:

ОШИБКА Ошибка: InvalidPipeArgument: «Невозможно преобразовать« Недействительную дату »в дату» для канала «DatePipe»

Кажется, что dateCreated не является действительной датой ... что такое dateCreated? Откуда ты это взял?

Explosion Pills 31.07.2018 19:22

Показать еще код. Когда вы пытаетесь установить dateCreated?

Amit Chigadani 31.07.2018 19:29

Я получаю это из контрольной даты для angular. Данные для этой переменной: чт, 26 июля 2018 г., 15:30:00 GMT-0500 (hora estándar de Colombia). Это дата, которую пытается отформатировать

Sneyder Ospina Chavarria 31.07.2018 19:29

var created: строка = значение ['startDate']. toString (); created = created.substring (0, created.indexOf ('GMT')); пусть dateCreated = новая дата (создана); console.info (dateCreated); created = this.datePipe.transform (dateCreated, 'yyyy-MM-ddTHH: mm');

Sneyder Ospina Chavarria 31.07.2018 19:30

Я не вижу проблем с вашим кодом. stackblitz.com/edit/angular-datepipe-amit?file=src/app/…

Amit Chigadani 31.07.2018 19:43

что, если dateCreated - это let dateCreated = "2021-06-29 18:24:48.000000" <p title = "{{dateCreated | date}}">{{dateCreated | date}}</p>

Praveen Patel 30.06.2021 11:02
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
2
6
23 335
3

Ответы 3

Принимать только форматы даты

Year:
      YYYY (eg 1997)
   Year and month:
      YYYY-MM (eg 1997-07)
   Complete date:
      YYYY-MM-DD (eg 1997-07-16)
   Complete date plus hours and minutes:
      YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
   Complete date plus hours, minutes and seconds:
      YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
   Complete date plus hours, minutes, seconds and a decimal fraction of a
second
      YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)

Ссылка

Просто замените все символы "/" в дате на "-":

dateCreated = formatDate(`${dateCreated}`.replaceFunction('/','-'),'full','es-CO');

Эта ошибка возникает из-за того, как даты работают в angular, потому что он не может анализировать даты, содержащие косые черты, без специального синтаксического анализатора.

Или вы все равно можете определить собственный синтаксический анализатор, используя date-fns или что-то в этом роде.

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

Я столкнулся с этой же проблемой при попытке передать строку, которая была в формате даты и времени MySQL, в функцию преобразования.

Заимствовав у Jai Kumaresh's отвечать, я смог исправить эту проблему, сначала преобразовав строку даты и времени MySQL в формат, распознаваемый ISO, выполнив следующие действия:

dateCreated = dateCreated.replace(' ', 'T');
created = this.datePipe.transform(dateCreated, 'yyyy-MM-ddTHH:mm');

Пока я этого не сделал, Safari выдавал мне эту ошибку, хотя Chrome и Firefox работали. С помощью этого исправления проблема была решена в каждом из этих браузеров.

Меня устраивает

Neel Rathod 29.04.2021 10:54

Другие вопросы по теме