2016-09-15 54 views
1

我试图格式化的日期时间,我从DB以下列格式读取:Angular2 - 问题与日期管

15/09/2016 20:45

然而使用Angular2提供的默认date管,我得到以下(当我真正的设备上运行然而,在浏览器,它显示了正确的格式:

15/09/2016,20:8:45 PM

下面是我格式化的HTML端:

{{ order.time | date:"dd/MM/y, HH:mm" }} 

任何想法上有什么不对?

+0

当你取日期,你得到它的字符串类型或日期类型? – micronyks

+0

@micronyks日期类型 –

+0

@micronyks日期类型是什么意思?在JSON中,它只能以字符串格式正确? –

回答

0

有很多方法可以做到这一点。您必须确保您提取的日期必须是日期格式。如果是这样,它将与日期管道正常工作。如果不是,则必须确保将其转换为日期,如下所示。 (这可以帮助你明白我的意思)

工作演示:https://plnkr.co/edit/aaFu5G759ghUQvk1a9Zw

import { Component } from '@angular/core'; 
import { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser'; 
@Component({ 
    selector: 'my-app', 
    template: `  
    {{date|date:"dd/MM/y, HH:mm"}} //<----- here make sure date variable has proper date(type) 
    ` 
}) 
export class AppComponent { 

    date=new Date(2016,08,5,20,45); 

    //<---- date variable gets proper date(type) 
    //<---- also note month starts with zero(0) so for sep month (08) is taken. 
} 
+0

你的答案的问题是,在控制器级别,我没有'date'变量,因为它是在视图级别上用ngFor生成的。此外,从数据库接收日期对象的格式如下:'2016-09-15T19:45:00.000Z' –

+0

这很好。我只是给你一些提示。无论你有什么,你只需要确保你在最后处理日期类型。然后n就会按你想要的方式工作。 – micronyks

+0

我无法使它工作,特别是因为从DB接收的格式是'2016-09-15T19:45:00.000Z' –