2017-02-17 2 views
0

日付文字列を処理するコードがあり、日付パイプを使用してUIに表示したいとします。ここでは、日付角2日付パイプが存在しないときのオフセット処理

のサンプル値である ":23:2017-02-07T21は19.163"

そしてここでは、テンプレートコードはここ

<div class="input-group" *ngFor="let history of selectedPricingItem.history"> 
    <span class="input-group-addon"> 
     <i class="fa fa-fw fa-calendar-o " aria-hidden="true"> 
     </i> 
     {{history.createdDate| date:short}} 
    </span> 
    <textarea class="form-control" [(ngModel)]="history.generalNotes" rows="2" readonly></textarea> 
</div> 

で置かれている日付ですUI上の

2017年2月7日、17:23

何らかの理由で、文字列にオフセットがない場合にオフセットを追加しています。私は瞬間や何かを使って日付オブジェクトに変換する必要がありますか?

私は「角度/共通@」を使用しています:「^ 2.2.0」私のpackage.jsonに

+0

どのブラウザが使用していますか?それはFF対Chromeで異なって現われますか? https://angular.io/docs/ts/latest/api/common/index/DatePipe-pipe.html –

答えて

0

これは、すでにタイムゾーンのオフセットを持って供給日付を期待し、場合B/C DatePipe起こりますnoneが指定されている場合、オフセットは「+0」(UTC)であるとみなされます。次に、日付をクライアントのローカルオフセットに変換しようとします。あなたはUTC-6(中央時間)でなければならないので、なぜ6時間を引いているのでしょうか。東または太平洋時間の人はあなたが見るものとは異なる時間を見ます。

あなたが使用しているバックエンドがわかりませんが、私の解決策はC#/ WebApiです。私の解決策はKindプロパティが "UnSpecified"のDateTimeオブジェクトを見つけて "UTC"または "Local"に変更することでした。タイムゾーンオフセットでJSONをシリアライズして混乱を避けることができます。

この動作が気に入らない場合は、DatePipeを独自のカスタムパイプで置き換えて、date.Partを日付解析(DatePipeはデフォルトで国際化APIを使用)に使用します。

関連する問題