如何将ISO日期格式化为正确的格式?从服务器端返回的日期格式如下:2016-12-28T11:44:00Z。
这是我的HTML:
<tr *ngFor="#ticket of tickets">
<td>{{ticket.id}}</td>
<td>{{ticket.subject}}</td>
<td>{{ticket.status}}</td>
<td>{{ticket.created_at}}</td>
<td>{{ticket.updated_at}}</td>
<td><a [routerLink]="['SingleTicket', {'id': ticket.id}]" class="btn btn-outline-primary">View</a></td>
</tr>
这是票证界面。
export interface Ticket {
id: number,
subject: string,
description: string,
status: string,
submitter: number,
created_at: Date,
updated_at: Date
}
答案 0 :(得分:2)
您是否尝试过PIPE? ..(旧的Angular 1过滤器)..类似的东西:
<td>{{ticket.created_at | date: 'dd/MM/yyyy' }}</td>
答案 1 :(得分:2)
您可以尝试使用moment.js
:
<tr *ngFor="#ticket of tickets">
<td>{{ticket.id}}</td>
<td>{{ticket.subject}}</td>
<td>{{ticket.status}}</td>
<td>{{formatDateTime(ticket.created_at)}}</td>
<td>{{formatDateTime(ticket.updated_at)}}</td>
<td><a [routerLink]="['SingleTicket', {'id': ticket.id}]" class="btn btn-outline-primary">View</a></td>
</tr>
在controller
:
formatDateTime(date: Date): string {
if (!date) {
return '';
}
return moment(date).format('MM/DD/YYYY hh:mm A');
}
这对我有用,希望也会为你效劳。
答案 2 :(得分:1)
您可以npm install moment --save
和
const moment = require('moment')
formatedDate = moment("2010-01-01T05:06:07", moment.ISO_8601);
您还可以选择其他格式
moment('2016-12-28T11:44:00Z').format('MMMM Do YYYY, h:mm:ss a'); // December 30th 2016, 9:56:04 am
moment('2016-12-28T11:44:00Z').format('dddd'); // Friday
moment('2016-12-28T11:44:00Z').format("MMM Do YY"); // Dec 30th 16
moment('2016-12-28T11:44:00Z').format('YYYY [escaped] YYYY'); // 2016 escaped 2016
答案 3 :(得分:1)
<td>{{ticket.created_at | date: 'dd/MM/yyyy' }}</td>
您可以添加管道并过滤格式