2015-10-26 2 views
8

WebApi 2、Javascript、およびデータベースのdatetimeデータ型を処理する適切なメソッドがあるかどうかを確認したいと思います。 JavaScriptからWEBAPIへJavaScriptとWebApiの日時データ型の処理2

日時:WEBAPIからJavaScriptに

var date = new Date(); 
var datestring = date.toISOString(); 
//Send datestring to WebApi 

日時:

//on getting datetime value from `http.get` call 
var dateFromServer = new Date(dateFromServer); 

WEBAPI:

着信ダTE

  • 単にデータ型datetime

データベースから日付を取得し、クライアントへの日付を返すと、データベースの列に返さdatestring保管し、何もしない:

  • なし日時を操作(単純にWebApiJsonシリアライザex:2015-10-23 T18:30:00)。クライアントは自動的にUTC日時をローカル日時に変換します

答えて

8

はいユーザーのタイムゾーンなどに関する情報を処理したくない場合は...これは許容される方法です。 比較のためにサーバーから生成された日付などが必要な場合は、c#DateTime.UtcNow メソッドを使用する必要があります。 私は「グローバルUTC条約」を非常に安全でいい解決策と考えていますが、それには限界があります。

たとえば、(各ユーザーの国で)午前9時に異なるタイムゾーンにあるすべてのユーザーにアラートを送信する場合は、それぞれの時間帯の「09:00」を知ることは不可能です。

これを解決する方法の1つは、各ユーザーのタイムゾーン情報をデータベースに手動で個別に保存し、比較を行うたびに時間を変換することです。 「2014-02-01T09:28

は次の形式を使用してサーバーに、JavaScriptから、あなたの日付を送る:あなたはあなたができるサーバー上のすべてのタイムゾーン情報を保存する代わり場合

TimeZoneInfo.ConvertTimeFromUtc(time, this.userTimezone); 

: 56.321-10:00 " ISO 8601は、Zをタイムゾーンオフセットの+または - の値に置き換えることで、タイムゾーンもサポートしています。

"DateTimeOffset"タイプのWEB API 2日付タイプを宣言してください。

最後に「datetimeoffset」タイプを使用してデータベースに日付を保存します。

この方法では、サーバーまたはデータベース上の任意の時点で、ユーザーの時間とタイムゾーンに関するすべての情報が得られます。

this articleが便利です

関連する問題