2016-08-10 4 views
0

Я разрабатываю проект asp.net mvc3. У меня есть проблема в этой проблеме, с которой я сталкиваюсь. Я дам сценарий, чтобы он хорошо понял.Каков наилучший способ получить дату и время на стороне сервера?

Scenario:

У меня есть 2 ПК (PC1(server) and PC2(client)). Например, оба компьютера имеют разные даты и время, например, для PC1: +8GMT Date 8/10/2016 и для PC2 +8GMT Date 8/9/2016. Я использую PC2client, и я использую код для получения времени DateTime.Now(); в моем контроллере, и время отображается в label в одном из моих представлений. Я попытался настроить Date and Time на PC2 ярлык для отображения времени и времени. Чего я хочу, даже если я изменю Date and Time в PC2, это не повлияет/изменит отображаемый Date and Time на моей этикетке, он будет придерживаться того, что Date and Time в PC1.

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', даже я меняю' DATE' в 'PC2', отображаемая дата на этикетке не изменится? – UkI

0

Я не очень разбираюсь в вашем описании. Кажется, вы хотите, чтобы ваш ярлык всегда показывал время на сервере (PC1), когда веб-страница загружается на клиенте, вызывая сайт на сервере, возможно, как https://pc1. То, что вы делаете, должно выполнить это: время, отображаемое на вашем ярлыке, будет системным временем с сервера. Изменение времени на клиенте не повлияет на него.

Если вы хотите, чтобы ваш клиент (ПК2) показывал свое местное время, вам нужно будет использовать код, который выполняется на клиенте, то есть JavaScript в большинстве случаев. Работа с датами в Javascript может немного отличаться от других языков/ожиданий, поэтому я предлагаю прочитать документы по адресу https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date. Начало работы с var currentDate = new Date();.

Смежные вопросы