2012-06-25 3 views
0

C#에서 UTC 시간을 사용하는 페이지의 현재 시간을 가져 오려고 할 때. 빈 값을 얻습니다. 처음에는 문제가 runat = "server"속성이 잘못 설정되었거나 브라우저가 쿠키를 올바르게 승인하지 않는 것과 관련 있다고 생각했습니다. 그러나 어느 쪽도 문제가되지는 않습니다. 이것은 어딘가에 열쇠가 누락 된 것을 의미합니까?GetClientUTC가 null 값을 반환합니다.

모든 아이디어 나 제안을 환영합니다.

+3

여기서'Session [ "GetClientUTC"]'를 설정하고 있습니까? 설정하지 않으면 당연히 존재하지 않을 것입니다. – cdhowie

+0

그래서 숨겨진 컨트롤을 가지고 시간을 읽었습니까? 왜 너는 그것을 세션에 넣고 있니? 왜 그 컨트롤의 가치를 사용하지 않는가? 우리가 도와주기를 원하면 적어도 어떤 종류의 통제인지를 말해야합니다. – MNGwinn

답변

1

아무 것도 세션 개체 자체로 나타나지 않습니다. 먼저 가치를 창출해야합니다. 결과적으로 존재하지 않는 키는 빈 (null) 결과를 리턴합니다.

0

이 코드 스 니펫은 어디에서 왔는지는 모르지만 어딘가에 Session 개체의 값을 설정해야합니다. 클라이언트 시계의 오프셋을 UTC로 가져 오려면 여기에서이 사이트를 살펴보십시오. Getting the client UTC Offset with ASP.NET

물론 첫 페이지를 전달할 때 클라이언트 시간을 알 수 없습니다. 또한 클라이언트가 자바 스크립트를 사용하지 않으면 정보를 얻지 못할 것입니다. 이 경우 옵셋을 '추측'하거나 서버 시간과 같은 기본값을 사용해야합니다.

+0

나는 클라이언트의 현재 시간을 얻으려고하고있다. 자바 스크립트는 사용할 수 없습니다. – Sc0rpio

+0

위의 링크에서 제공된 방법은 사용자가 찾고자하는 것입니다. 클라이언트 시계의 UTC 오프셋을 제공합니다. 서버의 현재 시간과이 오프셋과 함께 클라이언트에서 시간을 계산할 수 있습니다. –

0

세션이 자동으로 채워지지 않으므로 수동으로 세션을 입력하는 경우 언제, 어디서나 세션을 추가해야합니다.

내가 왜 세션 컬렉션을 찾고 있는지 확실하지 않습니다.

"페이지의 현재 시간"이라고 말하면 무엇을 말하고 있습니까? 현재 시간 만 원하니? 그게 DateTime.UtcNow입니다. 아니면 클라이언트의 시계가 설정된 시간을 찾고 있습니까?

관련 문제