使用 angular2 时刻格式化日期

Format date with angular2 moment

使用来自 angular2-momentamTimeAgo 管道时出现以下错误。

Deprecation warning: value provided is not in a recognized RFC2822 or ISO format.
moment construction falls back to js Date(), which is not reliable across all browsers and versions.
Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release.
Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments: [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 包和这个 angular 库可以认识它。

有什么想法吗?

创建一个新的时刻对象将其传递到管道中怎么样:

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);

从版本 1.4.0 amParse 引入的 angular2-moment 管道:

Parses a custom-formatted date into a moment object that can be used with the other pipes

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

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

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