2009-03-23 4 views
5

사용자의 현재 표준 시간대를 기준으로 시간을 표시하려고합니다. 내 데이터베이스에 UTC 형식으로 시간을 저장하지만 클라이언트의 표준 시간대로 표준화하고 싶습니다. 지금까지 가장 가능성이있는 옵션은 클라이언트 시간을 캡처 한 다음 현재와 현재 UTC 간의 차이를 결정하고 해당 델타를 사용하여 렌더링 할 때 시간을 표준화하는 것입니다. 요청한 클라이언트 시스템의 UTC 시간을 감지하고 표준화 할 수있는 더 직선적 인 옵션이 있는지 알고 싶습니다.ASP.NET 클라이언트 시간

+0

클라이언트의 시간이 정확하게 설정되었는지 어떻게 알 수 있습니까? 너는 이길 수 없어. –

+0

나는 그것을 고려했다. .. 내가 단지 그들의 시간에 맞을 수 있으면 나는 그것을 승리로 간주 할 것이다 (맞다 또는 틀린). :). – JPrescottSanders

답변

8

자바 스크립트 dateObject.getTimezoneOffset()을 사용합니다.

http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp

당신은이 서버의 시간과 클라이언트의 시간 사이의 오프셋을 계산하기 위해이 값을 사용할 수 있습니다 자신의 시간이 정확하게 설정되지 않은 경우에도, 잘하면 그들의 시간대를 설정했습니다. (Jason이 아래의 주석에서 유용하게 지적했듯이)

+0

당신의 해결책은 옳습니다. 약 6 개월 전에 웹 응용 프로그램에서이 문제를 해결해야했고 같은 결론에 도달했습니다. 클라이언트 시간대로 수정 한 서버 시간을 사용합니다. –

2

getTimezoneOffset 이외에, 또는 대신에 사용자가 프로필에서 기본 설정 시간대를 지정할 수 있도록 허용해야합니다. 예를 들어 사용자가 한 시간대에 방문 할 수도 있지만 집 시간대에 시간이 표시되는 것을 선호 할 수 있습니다.

또한 JavaScript 함수를 호출하는 것처럼 간단하면 사이트에서 사용자의 시간대를 묻지 않아도됩니다.

0

훨씬 더 나은 방법은 사용자가 정확한 시간대를 저장하고 (선택적으로) 일광 절약 시간을 관찰하는 경우 선택하도록 허용하는 것입니다 (해당 시간대에 적용 할 수있는 경우). 물론 할 수 있습니다 원하는 경우 자동으로 DST 정보 (시간대 기준)를 입력하십시오.

가입 할 때 또는 "옵션"에 포함시켜야합니다.