문제

나는 웹 사이트에 '올바른'이 다양한 방식으로 해석 될 수 있기 때문에 솔직히 느끼는 웹 사이트에 '올바른'시간을 표시하도록 요청 받았다.

우리의 현재 방법은 서버 컨트롤 렌더링 JavaScript를 사용하여 서버의 DateTime을 매개 변수로 사용하여 ONLOAD를 실행하여 JavaScript에서 클록 객체를 생성하여 페이지에서 최종적으로 렌더링 된 다음 시계를 증가시키기 때문에 부정확 한 시간을 초래합니다. 서버 처리, 네트워크 대기 시간 및 클라이언트 측 성능 (Onload를 실행하는 다른 것들이 많이 있습니다) 사이에서 클럭은 실제 서버 시간에서 벗어나고 클라이언트 PC에 비해 알고있는 사람입니다.

그래서 '올바른'시간을 보여주기 위해 내가 할 수있었습니다.

  • 로컬 PC 시간을 사용하고 새 날짜 ()를 JavaScript 클록 객체로 전달하십시오. 장점 : 가능한 한 PC 시계에 가깝습니다. 단점 : PC 시계가 얼마나 정확한 지 확실하지 않습니다.
  • NTP 서버에 TCP 요청에 웹 서비스를 사용하여 웹 페이지에서 클럭을 업데이트하십시오. 장점 : 로컬 PC도 NTP에 동기화 된 경우 정확하고 최상의 일치 일치가됩니다. 단점 : 서버에 대한 모든 시간대 조정을 처리해야합니다. PC 시계가 나오면 여전히 불일치가 있습니다.

내 자신의 웹 서비스를 구현하거나 같은 것을 사용합니까? 지구 도구 또는 월드 타임 웹 서비스 (편집하다: 링크 제거 -404)

다음은 블로그 게시물입니다 원자 시계 웹 서비스의 Jon Galloway 꽤 오래되었지만 Google이 결론에 도달하지 않으면 높은 순위입니다.

Hoeply는 관리와 함께 서버 클럭 (GMT)에 동기화하는 이유와 해당 시간대가 아닌 경우에 맞지 않는 이유와 로컬 PC와 일치 해야하는 이유를 관리합니다.

이것에 대한 어떤 각도도 내가 누락 되었습니까?

도움이 되었습니까?

해결책

경매 웹 앱에서 고객에게 정확한 시간을 보여 주어야했습니다. 페이지와 함께 현재 서버 시간을 보내고 나머지 페이지가로드되기를 기다리지 않고 JavaScript가 즉시 초기화 할 수 있습니다. 따라서 최악의 경우 네트워크 대기 시간 만 다루고 있습니다.

그 후, 당신은 정확한 시간에 가깝습니다. JavaScript 타이머 코드가 올바르게 작성되는 한 다음 페이지로드 전에 동기화되지 않을 것입니다. 그러나 나는 많은 나쁜 JS 시계 코드를 보았습니다. (힌트 : date () good, settimeout () bad.)

사용자가 오랫동안 앉아있는 응용 프로그램이있는 경우 페이지 또는 Ajax를 다시로드하여 시간 동기화를 새로 고치십시오.

시간대에 대해 걱정하지 않고 UTC 시간을 사용하여 어떤 시간이 일어날 지에 대한 혼란이 없습니다.

다른 팁

먼저, 고객이 Windows, Linux 및 OSX에 모두 사용자에게 거의 항상 볼 수있는 내장 시계가 있음을 알고 있는지 확인하십시오 (또는 매우 쉽게 볼 수 있음). 또한 고객이 운영 체제에서 내장 시계를 숨기기 위해 설정 될 수있는 키오스크 근처에 종종 위치한 물리적 시계를 알고 있는지 확인하십시오.

알고 있고 고객이 여전히 웹 사이트에서 시계를 원한다면 클라이언트가 "올바른"시간을 정의하게 한 다음 정의와 일치하는 솔루션을 구현하십시오 (두 솔루션 모두 두 가지 솔루션이 가장 잘 관리하는 것처럼 보입니다. 정의).

당신이 사용할 수있는 GEO 타겟팅 웹 사이트 방문자의 물리적 위치와 데이터베이스에서 구역의 (GMT -XX : XX)를 저장 한 다음 요청의 위치에 따라 시간을 계산합니다. 그것은 모든 타사 웹 서비스로의 긴 여행을 절약 할 것입니다.

구현할 수있는 또 다른 방법은 사용 중입니다 IP 지리 위치. 사용자가 IP (일반적으로 타임 존 포함)를 기준으로 사용자가 어디에서 연결하고 있는지 알려주는 서비스가 있으며 해당 정보를 서버의 실시간 시계와 결합하여 사용자에게 현지 시간을 표시 할 수 있습니다.

특히 어딘가에서 연결되는 것처럼 보이는 기업 사용자와는 거리가 멀지 않습니다 (아르헨티나에 살고 있지만 내 작업 인터넷 연결은 미국 회사 인 직원이므로 모든 웹 사이트가 내가 위치한 것으로 가정합니다. 미국)

UTC에서 시간을 처리합니다.

  • 사용자가 있습니다 말하다 당신은 그들이 사용하고 싶은 영역입니다.
  • 사용자에게 지속적인 프로필이있는 경우 선택을 지속하십시오.
  • 항상 UTC와 현지 시간을 나란히 표시하고 명확하게 표시하십시오.

또한 임의의 사용자 지정 영역 클록을 표시 할 수도 있습니다. Vista는 이것을 수행하고 나는 그것이 얼마나 편리한 지에 놀랐습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top