Формат даты с моментом 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.0
amParse
труба это:
Анализирует отформатированную дату в объект момента, который можно использовать с другими каналами
В вашем случае вы можете сделать что-то вроде следующего:
<span class="date-created"> {{ job.createdAt | amParse:'DD-MM-YYYY' | amTimeAgo }} </span>
таким образом, вы можете проанализировать вашу строку даты прямо в вашем представлении.