2017-05-08 4 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+ 午前2時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を使用して、日付にミリ秒を追加することができます。 [...]
- - 秒の小数は、現在の形式Sでサポートされてい

は、だからあなたの例では、角5はChangeLog

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



ようになり https://angular.io/api/common/DatePipe


を参照してください。 〜 SSS
- [...]

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では、新しいDate-パイプは、角度のでM

関連する問題