Форматировать дату с моментом angular2

Я получаю следующую ошибку при использовании amTimeAgo pipe из angular2-moment.

Предупреждение об устаревании: предоставленное значение не соответствует признанному формату RFC2822 или ISO. В момент построения возвращается к js Date (), что ненадежно для всех браузеров и версий.
Не рекомендуется использовать форматы даты, отличные от RFC2822 / ISO, и они будут удалены в следующем основном выпуске.
См. http://momentjs.com/guides/#/warnings/js-date/ для получения дополнительной информации.
Аргументы: [0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 21-03-2017, _f: undefined, _strict : undefined, _locale: [объект Объект]

Также труба печатает Invalid date.

Пользуюсь вот так: <span class="date-created"> {{ job.createdAt | amTimeAgo }} </span>

А значение job.createdAt - это строка в формате: 22-03-2017.

Я понимаю, что что-то не так с форматом, но не знаю, как передать этот пользовательский формат ('DD-MM-YYYY') в канал, чтобы пакет moment и эта угловая библиотека могли его распознать.

Любые идеи?


person Ned    schedule 20.05.2017    source источник
comment
Пользовательская труба для относительного времени здесь. Взгляните на эту запись < / а>   -  person Aravind    schedule 21.05.2017


Ответы (3)


Как насчет создания нового объекта момента, чтобы передать его в канал, например:

let newMomentObj = moment(job.createdAt, 'DD-MM-YYYY'); 

и в вашем html файле:

<span class="date-created"> {{ newMomentObj | amTimeAgo }} </span>
person Batajus    schedule 20.05.2017

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

{{job.createdAt |  date:'MM/dd/yyyy' | amTimeAgo }}

или преобразовать текущую строку в файл машинописного текста:

let newDate = new Date(job.createdAt);
person Lambo14    schedule 20.05.2017
comment
Почему-то не получилось с pipe. Сначала мне пришлось разобрать его с помощью momentjs. Благодарность! - person Ned; 27.05.2017

angular2-moment введен из версии 1.4.0 amParse, который:

Преобразует дату в настраиваемом формате в объект момента, который можно использовать с другими каналами.

В вашем случае вы можете сделать что-то вроде следующего:

<span class="date-created"> {{ job.createdAt | amParse:'DD-MM-YYYY' | amTimeAgo }} </span>

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

person VincenzoC    schedule 20.06.2017