格式化日期与angular2时刻

时间:2017-05-20 16:27:41

标签: angular momentjs angular2-moment

使用angular2-moment中的amTimeAgo管道时,我遇到以下错误。

  

弃用警告:提供的值不是公认的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:[object Object]

管道正在打印Invalid date

我正在使用它:     <span class="date-created"> {{ job.createdAt | amTimeAgo }} </span>

job.createdAt的值格式为字符串:22-03-2017

我理解格式有问题,但不知道如何将自定义格式('DD-MM-YYYY')传递给管道,以便moment包和此角度库可以识别它。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

我猜,字符串未正确转换为日期..您可以尝试以下两个选项:

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

或将字符串转换为打字稿文件中的日期:

let newDate = new Date(job.createdAt);

答案 1 :(得分:0)

如何创建新的时刻对象以将其传递到管道中,例如:

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

并在你的html文件中:

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

答案 2 :(得分:0)

从版本1.4.0 amParse引入的

angular2-moment:

  

将自定义格式的日期解析为可与其他管道一起使用的时刻对象

在您的情况下,您可以执行以下操作:

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

这样您就可以直接在视图中解析日期字符串。