2016-04-26 16 views
1

私は、異なるタイムゾーンでクライアントによって使用されるWeb APIプロジェクトに取り組んでいます。有効期限の時間差を処理す​​るにはどうすればよいですか?

私たちのサーバーは米国内にあり、ユーザーはどこにいてもサービスにアクセスできます。

ユーザーを作成するときに、有効期限を設定する必要があります。

public DateTime ExpireOn { get; set; } 

し、クライアントからこの

{ 
"expireOn":"2020-12-30" 
} 

のように日付を掲示すると私の期限が切れる日付をチェックしています今、この

if(user.ExpireOn >= DateTime.UtcNow) 
{ 
return true; 
} 

のように、私が作成した場合にどのような問題をやっています米国外からのユーザー

有効期限を適切に処理する方法を教えてください。

異なるタイムゾーンのユーザーの有効期限を処理する標準的な方法はありますか?ここ は、ユーザーの時間に表示する時間帯を説明するブログがあなたのAPIを呼び出すためのUTC(協定世界時)の時間帯の使用を強制する必要がhttp://www.prideparrot.com/blog/archive/2011/9/how_to_display_dates_and_times_in_clients_timezone

+3

ローカルタイムスタンプではなく、UTCとしてデータを送信する必要があります。 –

+0

他の回答は、UTCが必ずしも正しいとは限りません。あなたは自分自身に尋ねる必要があります - あなたはその日まで何を意味しますか?その日の終わりはUTCですか?あなたのビジネスのタイムゾーンでは?ユーザーのタイムゾーンでは?いくつかの他のタイムゾーン?あなただけがそれに答えることができます。解決方法は状況によって異なります。 –

答えて

0

オフセットです。

私はまた、このようなISO 8601

0

日付、時間帯によって影響されないことが保証されますAPIからデータを送信するために協定世界時(UTC)を使用して標準を使用してお勧めしたい

することができます

var myDate = new Date(); // Set this to your date in whichever timezone. 
var utcDate = myDate.toUTCString(); 
+0

Dateコンストラクタで文字列を解析することはお勧めできません。ライブラリを手作業で解析するほうがはるかに優れていますが、単一のフォーマットを使用すると2行の関数で十分です。 – RobG

関連する問題