時間の表示にカスタムパイプを使用していましたが、ミリ秒も表示できるように変更しました。
{{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
パイプからの出力:08.05.2017 15:45:38.38
完全なjsonDateパイプ(形式なし):2017-05-08T15:45:38.2527293 + 02:00
私はJavaScriptを使い始めたばかりですが、これがJavaScriptであるか、Angularの問題であるかはわかりませんが、Angular内で機能させたいと思います。パイプを使用してこれを行うことは可能ですか?またはこれを行う別の/より良い方法はありますか?
angular 5なので、SSS
を使用して日付にミリ秒を追加できます。
参照 https://angular.io/api/common/DatePipe
そのため、例は次のようになります
{{log.LogDate|jsonDate|date:'dd.MM.yyyy HH:mm:ss.SSS'}}
angular 5の変更ログ:
-[...]
-秒の小数部がS
からSSS
の形式でサポートされるようになりました。
-[...]
これは、Angular問題です。AngularJSはミリ秒をサポートしていますが、Angular(2+)はサポートしていません( GH問題 )。 date
パイプを適切にドロップし、このタスクにはカスタムパイプのみを使用してください。ただし、この例では日付を適切に処理できないようです。詳細を説明しないと、外部ライブラリを使用してフォーマットを実行することをお勧めしますあなたのパイプの内側にいると、それ以外の場合は少しの報酬で多くの労力を費やします。私の個人的な選択の武器は Moment.js 正しくインポートした後、次のように使用します:
moment(value).format('DD.MM.YYYY HH:mm:ss.SSS');
外部ライブラリをインポートせずにこれから汚い方法が必要な場合は、Angular日付パイプをそのまま(秒のみ))使用し、パイプして独自にミリ秒を追加できます。
別の可能性は、角度パイプにとどまり、javascript-methodを介してミリ秒を抽出することです:
{{ Datetime | date:'dd.MM.yyyy HH:mm:ss' }}.{{ getMillies(Datetime) }}
----
public getMillies(input: Date): number
{
return new Date(input).getMilliseconds();
}
Angular 5の場合、Mをサポートするために新しい日付パイプが進行中です