2016-08-10 1 views
0

나는 asp.net mvc3 프로젝트를 개발 중이다. 나는이 문제에서 내가 마주 치는 문제가있다. 나는 그것이 잘 이해할 수 있도록 시나리오를 줄 것이다.서버 측에서 날짜와 시간을 얻는 가장 좋은 방법은 무엇입니까?

Scenario:

나는이 PC (PC1(server) and PC2(client)) 있습니다. 예를 들어 두 PC 모두 날짜와 시간이 다르면 PC1+8GMT Date 8/10/2016이고 PC2 +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 개체의 값을 UTC로 변환하는 DateTime.ToUniversalTime 메서드를 고려해보십시오.

이렇게하면 서버 위치에 관계없이 응용 프로그램에 표시하려는 표준 시간대로 변환 할 수있는 표준 시간으로 작업 할 수 있습니다.

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

귀하의 설명에 명확하지 않습니다. https://pc1과 같이 웹 페이지가 서버에서 사이트를 호출하여 클라이언트에로드 될 때 레이블에 항상 서버 (PC1)의 시간을 표시하려는 것처럼 보입니다. 현재 수행중인 작업은 다음과 같이 수행해야합니다. 레이블에 표시된 시간은 서버의 시스템 시간입니다. 클라이언트에서 시간을 변경해도 클라이언트는 영향을받지 않습니다.

클라이언트 (PC2)에 현지 시간을 표시하려면 클라이언트에서 실행되는 코드 (대부분의 경우 JavaScript)를 사용해야합니다. 자바 스크립트에서 날짜를 사용하는 것은 다른 언어/예상과 약간 다를 수 있으므로 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date에서 문서를 읽는 것이 좋습니다. var currentDate = new Date();으로 시작하십시오.

관련 문제