2012-12-19 3 views
1

정확한 시간을 제공하는 API/방법/사이트/링크가 있는지 궁금합니다.항상 올바른 datetime을 얻으시겠습니까?

서버 datetime 또는 클라이언트 datetime이 아닙니다. 나는 사용자 게임을 할 때가 언제인지 내 게임 사이트에서 카운트 다운하기 위해 datetime을 사용하고 있습니다. 사용자는 전 세계에서 왔으므로 미국에서 유럽에 이르기까지 클라이언트 시간을 사용하면 일치하지 않습니다.

그렇다면 일반적으로 서버 시간을 사용하지만 어쨌든 때때로 1.2 시간을 건너 뛸 수 있습니까? 나는 항상 똑같은 출처에서 타임 스탬프를 만들고 그 출처가 항상 정확한지 확인하고 싶습니다!

아이디어가 있으십니까?

+0

http://www.ntp.org/ – DaveRandom

+0

원자 시간을 의미합니까? 네트워크 (예를 들어 인터넷)를 통해 이것을 얻는다면 항상 지연이있을 것입니다 ... 마스터 네트워크에서 모든 서버로 시간을 보내도록 네트워크를 설정해야하는 것 같습니다. – Ben

답변

0

먼저 클라이언트 및 서버 코드에서 UTC을 사용하여 시간대 문제를 방지해야합니다.

나는 그 시간이 정확히 (나노초) 정확하다는 것이 중요하지 않다는 것을 이해한다. 더 중요하다. 시간은 서버와 클라이언트에서 동일 할 것이다.

그래서 클라이언트와 서버 모두에 대해 해당 UTC 시간에 대한 고유 한 소스가 필요합니다. 이것은 서버이어야합니다. 나는 당신의 서버를 클라이언트를위한 NTP 서버로 사용할 것을 제안 할 수있다. 그러나 웹 환경에 있다고 가정하면 이는 실용적이지 않습니다.

그래서 서버의 모든 메시지에 타임 스탬프 (UTC 시간)를 추가 할 것을 제안합니다. 클라이언트는이 타임 스탬프를 참조로 사용해야합니다. Additonaly는 서버를 호출하여 주기적으로 클라이언트의 시간을 업데이트 할 수 있습니다.

0

서버의 시간을 사용하는 것은 괜찮지 만 제대로 시간대를 얻을 수 있는지 확인하십시오

$now = new DateTime; 
$now->setTimeZone(new DateTimeZone("Europe/London")); 

지금, $now 런던에서 올바른 시간에, DateTime 개체를 포함 할 것이다.

PHP는 일광 절약 시간제 및 이상한 맞춤 시간 이벤트와 함께 훌륭한 작업을 수행합니다.

+0

이렇게하면 :'code' $ now = new DateTime; $ now-> setTimeZone (새 DateTimeZone ("Europe/London")); echo 'Now :'. $ now. '
'; exit;'code' 서버 오류가 발생합니까? 왜? – Mansa

관련 문제