角度アプリケーションでdatetimeをキャプチャする時と分のテキストボックスフィールドを持つカレンダーがあります。フロントエンドからWeb APIへの日付投稿
これは、以下のような完全な日付に変換されます:私は、Web APIの入力としてこのnotificationDateを投稿した場合のjavascriptは私のローカルタイムゾーンを追加しているので、それがウェブAPIに達したときに
accidentVM.AccidentNotificationDateFull = new Date(accidentVM.AccidentNotificationDate.getFullYear(), accidentVM.AccidentNotificationDate.getMonth(), accidentVM.AccidentNotificationDate.getDate(),
parseInt(accidentVM.AccidentNotificationHour), parseInt(accidentVM.AccidentNotificationMinute), 0);
var notificationDate = accidentVM.AccidentNotificationDateFull;
は、今ではさまざまなってきています(これは私の場合は+ 5:30です)。
は回避するために、この私はクライアントside.ThisからGMTの調整は基本的にGMTオフセット減算のノートを取ったり、それがサーバに到達したとき、再び正しいとなるように、入力からそれを追加しました。
機能が
this.convertDate = function (dateVM) {
var dateObj = dateVM;
if (new Date().getTimezoneOffset() < 0) {
dateVM = new Date(dateObj.setTime(dateObj.getTime() - new Date().getTimezoneOffset() * 60 * 1000));
}
else {
dateVM = new Date(dateObj.setTime(dateObj.getTime() + new Date().getTimezoneOffset() * 60 * 1000));
}
};
のように見えます。これは、問題を解決し、私は正しい日付時刻が掲載さばかり今見る、しかしそれはまだサーバー内に到達しながら、最後にTを追加します。
は、フロントエンドから、ここでの入力を参照してください、それがウェブAPIに到達したとき、それはなり
した場合はシオマネキ要求
対応それが注目されているUTCまたは最後にZが追加されています。
私の探求は、私がZを取り除くことができる方法があれば、より具体的には、DateTimeの種類は不特定/ローカルであるべきですか?
ISO 8601は日付を文字列として送信するのに最適な形式です。あなたのバックエンドは単に文字列を読み、それを瞬時に解析する必要があります。あなたはあなたが望むタイムゾーンを適用することができます – Phil