2016-08-10 4 views
0

私はasp.net mvc3プロジェクトを開発しています。私はこの問題に遭遇して困っています。私はそれがうまく理解できるようにシナリオを与えます。サーバー側で日時を取得する最も良い方法は何ですか?

Scenario:

私は2 PC (PC1(server) and PC2(client))を持っています。たとえば、2台のPCの日付と時刻が異なると、PC1+8GMT Date 8/10/2016PC2 +8GMT Date 8/9/2016となります。私はPC2clientを使用しています。私は時間を得るためのコードを使用していますDateTime.Now();は私のコントローラであり、時間はlabelに表示されています。私はPC2Date and Timeを調整して、時間を表示するためのラベルも変更しようとしました。私が欲しいのは、Date and TimePC2に変更しても、表示されているDate and Timeのラベルに影響はありません/ Date and TimePC1に貼り付けられます。

This scenario is i'm using/testing the publish project

任意の提案を歓迎します。

答えて

0

質問がわかりませんが、DateTime.ToUniversalTimeメソッドを調べると、DateTimeオブジェクトの値がUTCに変換されます。

このようにして、サーバーの場所に関係なく、アプリケーションに表示するために使用する任意のタイムゾーンに変換できる標準時刻を使用することができます。

DateTime serverTime = DateTime.Now;  
DateTime utcTime = serverTime.ToUniversalTime; 
string timeZoneId = "some time zone id"; 
TimeZoneInfo myTime = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId); 

DateTime label = TimeZoneInfo.ConvertTimeFromUtc(utcTime, myTime); 
+0

申し訳ありませんが、私は説明が十分ではありませんが、私は何を探しています。 – UkI

+0

申し訳ありませんが、私は最後の数日間忙しかったです。 '.ToUniversalTime'を使用すると、' PC2'の 'DATE'を変更しても、ラベルに表示された日付は変更されません。 – UkI

0

私はあなたの説明ではあまり明確ではありません。まるで、サーバー上のサイトを呼び出すことによってクライアントにWebページがロードされたときに、ラベルが常にサーバー(PC1)に表示されるようにしたいと思うようです(https://pc1など)。あなたがやっていることは、それを達成すべきです:ラベルに表示される時間は、サーバーからのシステム時間になります。クライアントの時刻を変更しても、それには影響しません。

クライアント(PC2)に現地時間を表示するには、クライアントで実行されるコード(ほとんどの場合JavaScript)を使用する必要があります。 Javascriptで日付を処理することは、他の言語/予想と少し異なる場合がありますので、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Dateでドキュメントを読むことをお勧めします。 var currentDate = new Date();から始めましょう。

関連する問題