AngularjsとWebAPIの間で日付を処理する方法について、実際の混乱がありました。私たちは日付だけを気にし、時間や時間帯は気にしません。角度のあるサイトは、日付オブジェクトを私たちのAPIにポストしますが、日付オブジェクトにはタイムゾーンがあります。そのため、ユーザーの場所によっては、保存される日付が1日ずれています。日付、Angularjs、WebAPI
私は、これらの日付を1つずつベースに処理する必要はないので、すべてのフォームフィールドをループしているすべてのputおよび投稿に対してhttpインターセプタを置き、日付からタイムゾーンを取り除いて日付を返すだけですこれは正しいとは思わない。
これを処理する最善の方法についてのご意見はありますか?
UPDATE:
詳細それは場合に役立ちます。剣道の日付ピッカーを使用し、k-ng-modelでモデル値を設定しています。これは、有効なDateオブジェクトを取得するのに役立ちます。今日、私はインターセプターを削除し、以下を追加しました:APIに送り返されたときに
kendo.ui.DatePicker.prototype.valueOld = kendo.ui.DatePicker.prototype.value;
kendo.ui.DatePicker.prototype.value = function (e) {
var val = this._value;
if (val != null) {
this._value = moment(val).format("YYYY-MM-DD");
}
return this.valueOld(e);
}
ユーザーが日付を変更したときに今のモデルの値は日付のみとタイムゾーンになりますが、無視されます。
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd" });
私たちの開発者が個別に日付を処理する必要はありません:日付はフロントエンドに送信されているAPIで
我々としても、タイムゾーンを取り除きフォーマッタを持っています。私たちはもともとこれをやっていて、コードに一貫性はありませんでした。
UTCの日付を使用する必要があります。日付をUTCに変換せずにタイムゾーンを削除すると、さらに多くのバグが発生する可能性があります。 – nicooga
あなたはそれを思い描いています。すべてをUTCし、時間を無視する。 –