2017-05-08 108 views
3

我使用的是自定義的管道,用於顯示時間,現在我試圖改變它,這樣我也可以顯示毫秒:Angular2 +如何從日期顯示毫秒數?

{{log.LogDate|jsonDate|date:'dd.MM.yyyy   HH:mm:ss.sss'}} 

管道本身:

if (typeof (value) === 'string') { 
     if (value.includes('/Date(')) 
      return new Date(parseInt(value.substr(6))); 
    } 
    return value; 

然而,毫秒有的秒值:

log.LogDate:2017-05-08T15:45:38.2527293+ 02:00

從管

輸出:2017年5月8日15:45:38.38

完全jsonDate管(無格式):2017-05-08T15:45:38.2527293 + 02:00

我是新來的Javascript ,而且我不確定這是Javascript還是Angular問題,但是,我希望它能夠在Angular中使用。 有沒有可能使用管道來做到這一點,還是有另一種/更好的方式來做到這一點?

+0

請問您能否在示例中添加更多數據? 'log.LogDate'值和完整的'jsonDate'管道列表。 – borkovski

+0

感謝您的評論,我已經更新了有問題的數據。 –

回答

1

由於角5您可以使用SSS爲您的日期添加毫秒。
https://angular.io/api/common/DatePipe


所以,你的例子看起來像

{{log.LogDate|jsonDate|date:'dd.MM.yyyy   HH:mm:ss.SSS'}} 



更新日誌的角5:
- [...]
- 現在小數秒支持格式爲SSSS
- [...]

2

這是一個角度問題。 AngularJS支持毫秒,但Angular(2+)不支持(GH issue)。 您可以很好地刪除date管道,並只使用您的自定義管道執行此任務。然而,你的例子似乎沒有很好地處理日期。不用進入細節,我建議你使用一些外部庫來爲你的管道內的你做格式 。否則,這將是很多努力的小回報。我個人選擇的武器是Moment.js 在導入後正確,你會簡單地使用:

moment(value).format('DD.MM.YYYY HH:mm:ss.SSS'); 

如果你想有一個骯髒的方式擺脫這種不導入外部庫,你可以使用角日期管,因爲它是(用秒只有),然後管道它自己添加毫秒。

0

另一種可能性是留在angulars管並提取通過javascript-方法毫秒:

{{ Datetime | date:'dd.MM.yyyy HH:mm:ss' }}.{{ getMillies(Datetime) }} 

---- 

public getMillies(input: Date): number 
{ 
    return new Date(input).getMilliseconds(); 
} 

具有角5,一個新的日期 - 管在進步,支持M

相關問題