Формат даты с моментом angular2

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

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

Также труба печатная Invalid date,

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

И стоимость job.createdAt строка в формате: 22-03-2017,

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

Есть идеи?

3 ответа

Решение

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

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

и в вашем HTML-файле:

<span class="date-created"> {{ newMomentObj | amTimeAgo }} </span>

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

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

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

let newDate = new Date(job.createdAt);

angular2-момент введен из версии 1.4.0amParse труба это:

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

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

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

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

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