Angular 2 iso日期格式

时间:2016-12-30 09:49:19

标签: angular

如何将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
}

4 个答案:

答案 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

使用moment.js
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>

您可以添加管道并过滤格式